iOSでタッチされた座標を取得

iOSは(Androidとかでもそうだけど)画面がタッチされたらEventが発生する.Eventはオブジェクトとしてアプリに通知される.Eventオブジェクト内部にタッチされた座標などの情報が含まれているのでそれを取り出してやればOK.

  1. イベントハンドラをオーバーライドする.今回はtouchesBegan:をオーバーライド.
  2. touches anyObject でいずれか1つのタッチを取得
  3. locationInView:(UIView *)view でviewの中での座標を取得.viewはUIViewのサブクラスならば何でもOK.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"SZKMainViewController touches began");
    //[super touchesBegan:touches withEvent:event];
    CGPoint point = [[touches anyObject] locationInView:scrollView];
}

touchesBegan:は画面がタッチされた時に呼び出されるイベントハンドラ.多分最も使われる機会の多いハンドラの一つ.
マルチタッチに対応したアプリの場合はanyObjectではなくもっと工夫が必要かも.