忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

UITableViewのタッチ座標取得について

わか

UITableViewはタッチした座標を取得するメソッドが存在しません。 しかしUIPanGestureRecognizerを使用すれば取得可能です。

- (void)viewDidLoad
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(dummyDrag:)];
    pan.delegate = self;
    [self.tableView addGestureRecognizer:pan];
    return;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    CGPoint point = [touch locationInView:self.tableView];
    return NO;
}
座標取得用のドラッグジェスチャーを使用し、ドラッグ開始直前のタッチ座標を取得します。取得すればドラッグ処理は必要ないので常にNOを返してやります。
この方法ではタッチ開始時の座標のみ取得可能です。タッチ終了時の座標取得はサブクラスを作成したりと結構めんどうな事をしないといけない気がします。

拍手[0回]

PR