2011年2月11日金曜日

座標からtableViewのindexPathってわかる?

わかる。


// 表示しているtableVIewの現状のオフセットを取得する。
// ・tableVIewのオフセットはスクロールさせると値が変わるよ。
CGPoint offset = self.myTableView.contentOffset;

// オフセットの位置からy軸に120ポイント下に座標を指定してみよう。
// ・この場合だと、見た目上(画面上)の(10, 120)の位置を常にCGPointで取得してるってこと。
CGPoint p = CGPointMake(10.0, 120.0 + offset.y);

// で、オフセット分を調整した座標(p)からindexPathが取得できるようになると。
NSIndexPath *indexPath = [self.myTableView indexPathForRowAtPoint:p];

NSLogPoint(offset);
NSLog(@"%d", indexPath.row);

[self setDetailView:indexPath];



ついでに、スクロールしたときのドラッグ感知やスクロール停止時の感知のデリゲートメソッド

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
[self hogel];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (!decelerate) {
[self hoge];
}
}

0 件のコメント:

コメントを投稿