如何在表格视图中到达特定位置时选择一行?

时间:2012-05-14 06:51:52

标签: iphone ios uitableview

当人到达表视图的中心时,我想选择一个表视图行。基本上每当表格到达某个点y时,我希望选择该点的单元格。

我想它与uiPickerView类似。

3 个答案:

答案 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;
}

这是经过测试和运作的。 prevCellUITableViewCell类型的属性。

您必须获取表视图的滚动视图的当前偏移量,并将其添加到所需单元格的位置(在此示例中,我将单元格放在表格视图的中心)。 然后,使用-indexPathForRowAtPoint:我们在该点获取单元格的索引路径,并使用-cellForRowAtIndexPath:获取索引路径的单元格。将其设置为选中并存储以供以后使用(在下一个滚动中取消选择)。

答案 1 :(得分:0)

你试过吗

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

答案 2 :(得分:-1)

我认为可以通过获取所有可见索引路径,然后获取可见索引路径上的数据来实现。最好的答案你可能会看到自己的cz,你很了解你的问题。通过这个课程参考:

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