当人员到达表格视图的中心时,我想选择一个表格视图行。基本上每当表格到达点 y 时,我都希望选择该点的单元格。
我想它类似于 uiPickerView。
当人员到达表格视图的中心时,我想选择一个表格视图行。基本上每当表格到达点 y 时,我都希望选择该点的单元格。
我想它类似于 uiPickerView。
在你的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:
我们获取索引路径的单元格。将其设置为选中并存储以供以后使用(在下一次滚动时取消选择)。
你有没有尝试过
[[yourTableView cellForRowAtIndexPath:[yourTableView indexPathForRowAtPoint:wantPoint]] setSelected:true]
?
我认为可以通过获取所有可见索引路径,然后获取可见索引路径上的数据来实现。您可能会看到自己的最佳答案,因为您非常了解自己的问题。浏览此类参考: