Ios 如何检测UITableView中哪个部分可见?
我试图通过使用Ios 如何检测UITableView中哪个部分可见?,ios,uitableview,Ios,Uitableview,我试图通过使用indexPathsForVisibleRows来检测哪个部分是可见的,如下所示: -(BOOL)isRowZeroVisible { NSArray *visibleRowIndexes = [self.agendaTable indexPathsForVisibleRows]; for (NSIndexPath *index in visibleRowIndexes) { NSLog(@"The visible row has an index
indexPathsForVisibleRows
来检测哪个部分是可见的,如下所示:
-(BOOL)isRowZeroVisible {
NSArray *visibleRowIndexes = [self.agendaTable indexPathsForVisibleRows];
for (NSIndexPath *index in visibleRowIndexes) {
NSLog(@"The visible row has an index of: %ld", (long)index.row);
if (index.row == 0) {
NSLog(@"index.row is indeed 0");
return YES;
}
}
return NO;
}
然而,这似乎不起作用,我不明白为什么。是否有其他方法可以使用其索引检测可见部分?除了方法实际上从未被调用之外,您必须将其调用放在正确的位置。有几个地方可能是正确的:
-tableView:didendisplayingcell:forRowAtIndexPath:
-tableView:willDisplayCell:forRowAtIndexPath:
-tableView:cellforrowatinexpath:
最好的选择可能是前面两种方法的组合,因为如果0单元被删除或添加,它们将通知您。对于第三种选择,情况并非如此
此外,如果要检查某个节或某个特定行,您可能需要弄清楚,因为文本和代码之间不匹配。以什么方式不起作用?当它应该返回true时,它不返回true吗?反之亦然?代码在第一次查看时实际上看起来是正确的try
index.section
@luk2302它没有记录任何内容,这告诉我函数根本没有运行,但不知道为什么。是否尝试添加更多日志?一个在方法的开始,只是为了检查它是否被调用,一个在indexPatchsFor。。。记录返回路径的计数以检查它们是否为空,等等。当然,为什么要连续记录?调用cellforrowatinexpath中的函数,您应该会没事的。