人がテーブルビューの中央に到達したときにテーブルビューの行を選択したいとします。基本的に、テーブルがあるポイントに達すると、そのポイントのセルが選択されます。特定の位置に到達したときにテーブルビューで行を選択する方法
はuiPickerView
と、それは同様の想像、それは私がvisble indexpaths上のデータを、その後、すべてのvisibible indexpathsを取得することによってacheivedすることができますthnk
人がテーブルビューの中央に到達したときにテーブルビューの行を選択したいとします。基本的に、テーブルがあるポイントに達すると、そのポイントのセルが選択されます。特定の位置に到達したときにテーブルビューで行を選択する方法
はuiPickerView
と、それは同様の想像、それは私がvisble indexpaths上のデータを、その後、すべてのvisibible indexpathsを取得することによってacheivedすることができますthnk
。 prevCell
は、タイプUITableViewCell
のプロパティです。
テーブルビューのスクロールビューの現在のオフセットを取得し、これを目的のセルの位置に追加する必要があります(この例では、テーブルビューの中心にセルを配置します)。 次に、-indexPathForRowAtPoint:
を使用して、ポイントのセルのインデックスパスを取得し、-cellForRowAtIndexPath:
を使用して、インデックスパスのセルを取得します。選択して保存し、後で使用するために保存します(次のスクロール時に選択を解除します)。
を助けてください。最良の答えは、自分のカッブをよく知っているあなた自身のCZを見るかもしれません。あなたがここであなたのソリューションを見つけた場合、クラスのレフェリーnを通ってください。
あなたは
[[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:
を実装する必要がありますで
これを '[self.prevCell setSelected:NO animated:YES]'と '[cell setSelected:YES animated:YES]'でスパイスします。 「素晴らしい効果」を与えます。 – simonbs