2

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

谢谢

4

3 回答 3

3

这种方法对我来说效果很好。我有一个表格视图,一次显示 5 行,但是当我记录 visibleRows 时,我总是得到 7 的计数,所以我得到了这 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];
    }
}
于 2013-04-02T16:57:24.803 回答
0

使用作为协议tableView:willDisplayCell:forRowAtIndexPath:一部分的方法。UITableViewDelegate

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

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

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

希望这可以帮助。

于 2013-04-02T13:03:06.410 回答
0

我认为目的是 UIPickerView 自定义,

看看这里,这个问题会帮助你

于 2013-04-02T13:41:06.753 回答