2012-05-14 7 views
0

人がテーブルビューの中央に到達したときにテーブルビューの行を選択したいとします。基本的に、テーブルがあるポイントに達すると、そのポイントのセルが選択されます。特定の位置に到達したときにテーブルビューで行を選択する方法

はuiPickerView

と、それは同様の想像、それは私がvisble indexpaths上のデータを、その後、すべてのvisibible indexpathsを取得することによってacheivedすることができますthnk

答えて

3

prevCellは、タイプUITableViewCellのプロパティです。

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

+0

これを '[self.prevCell setSelected:NO animated:YES]'と '[cell setSelected:YES animated:YES]'でスパイスします。 「素晴らしい効果」を与えます。 – simonbs

0

あなたは

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

を試してみましたか?

- (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; 
} 

これはテストされ、機能している:あなたのUITableViewControllerあなたはこのような-scrollViewDidScroll:を実装する必要がありますで

関連する問題