UITableView - 始终选择中间的行

时间:2013-04-02 13:01:13

标签: ios objective-c cocoa-touch uitableview

我有UITableView超过50行,但一次只显示5行。如何强制中间行始终被选中?例如,示出2,3,4,5,6,将选择4。 用户滚动 - > 14,15,16,17,18,16将被选中等。

由于

3 个答案:

答案 0 :(得分:3)

这种方法对我来说效果很好。我有一个表格视图,一次显示5行,但是当我记录visibleRows时,我总是得到7的计数,所以我得到了这七个的索引路径,并选择中间的一个(索引3):

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSArray *vis = self.tableView.indexPathsForVisibleRows;
    if (vis.count %2 == 1) {
        [self.tableView selectRowAtIndexPath:vis[3] animated:NO scrollPosition:UITableViewScrollPositionNone];
    }
}

答案 1 :(得分:0)

使用属于tableView:willDisplayCell:forRowAtIndexPath:协议的UITableViewDelegate方法。

在这里,您可以检查indexPath.row值,如果它在您指定的范围内,请使用cell.selected。

更多信息: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html

虽然我建议您维护是否应在数据源中选择一个单元格,而不是挂钩到单元格的位置,这样您可以检查数据源是否应该选择单元格而不是强迫自己使用特定事物的特定索引单元。

希望这有帮助。

答案 2 :(得分:0)

目的是UIPickerView自定义我想,

看看here,这question会帮助您