当人到达表视图的中心时,我想选择一个表视图行。基本上每当表格到达某个点y时,我希望选择该点的单元格。
我想它与uiPickerView类似。
答案 0 :(得分: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:
获取索引路径的单元格。将其设置为选中并存储以供以后使用(在下一个滚动中取消选择)。
答案 1 :(得分:0)
你试过吗
[[yourTableView cellForRowAtIndexPath:[yourTableView indexPathForRowAtPoint:wantPoint]] setSelected:true]
答案 2 :(得分:-1)
我认为可以通过获取所有可见索引路径,然后获取可见索引路径上的数据来实现。最好的答案你可能会看到自己的cz,你很了解你的问题。通过这个课程参考: