0

人がテーブル ビューの中央に達したときに、テーブル ビューの行を選択したい。基本的に、テーブルがポイント y に到達するたびに、そのポイントのセルが選択されるようにします。

uiPickerView に似ていると思います。

4

3 に答える 3

3

あなたは次のようUITableViewControllerに実装する必要があります-scrollViewDidScroll:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (prevCell != nil)
        self.prevCell.selected = NO;

    CGPoint offset = self.tableView.contentOffset;
    CGPoint point = offset;
    point.y += self.tableView.center.y;
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    cell.selected = YES;
    self.prevCell = cell;
}

これはテスト済みで動作します。prevCellタイプのプロパティですUITableViewCell

テーブル ビューのスクロール ビューの現在のオフセットを取得し、これを必要なセルの位置に追加する必要があります (この例では、テーブル ビューの中央にあるセルを取得します)。次に、 を使用-indexPathForRowAtPoint:してポイントのセルのインデックス パス-cellForRowAtIndexPath:を取得し、 を使用してインデックス パスのセルを取得します。選択済みに設定し、後で使用するために保存します (次のスクロールで選択を解除するため)。

于 2012-05-14T07:26:18.283 に答える
0

やってみました

[[yourTableView cellForRowAtIndexPath:[yourTableView indexPathForRowAtPoint:wantPoint]] setSelected:true]

于 2012-05-14T07:14:10.353 に答える
-1

表示されているすべてのインデックスパスを取得してから、表示されているインデックスパスのデータを取得することで実現できると思います。あなたの問題をよく知っているあなた自身の cz を見ることができる最良の答え。このクラス リファレンスを参照してください。

https://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html

于 2012-05-14T07:00:54.123 に答える