我的UITableView
包含UICollectionView
,我需要确定UITableViewCell
的{{1}}是否可见。
我尝试使用这些方法:
UICollectionView
个indexPathsForVisibleItems
个对象,但它返回给我一个包含所有UICollectionView
的数组(当只有30个单元格可见时,数组上的计数返回给我799),然后我得到了当我使用UICollectionViewCells
对象的visibleCells
方法返回给我相同的数组时,结果相同。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
有几种方法可以定义可见。也许如果细胞的边缘是可见的,那么细胞本身可以被认为是可见的。如果你想检查整个单元格是否可见,你可以尝试检查单元格的框架是否完全包含在UICollectionView的边界内。
答案 1 :(得分:0)
您没有为我们提供足够的上下文来进行猜测,但是,我可以演示UICollectionView
内UITableView
使用-indexPathsForVisibleItems
报告正确数量的可见项目的情况:
AFTabledCollectionView
project。AFViewController.m
。将以下内容粘贴到实现中:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *items = [collectionView indexPathsForVisibleItems];
NSLog(@"%lu", (unsigned long)items.count);
}
UICollectionView
中的项目。您将在控制台中看到正在显示集合视图的正确可见项目数。