以编程方式选择尚未加载的 UICollectionView 单元格
Posted
技术标签:
【中文标题】以编程方式选择尚未加载的 UICollectionView 单元格【英文标题】:Programmatically selecting UICollectionView cell which are not loaded yet 【发布时间】:2016-08-01 10:13:12 【问题描述】:我正在尝试使用
以编程方式滚动到 UICollectionView 单元格[_calendarView collectionView:_calendarView.calendarCollectionView didSelectItemAtIndexPath:indexpath];
当我使用该索引路径检索单元格时,它给了我零单元格。 我认为这个单元格尚未加载。任何解决方案。
【问题讨论】:
【参考方案1】:尝试使用下面的 UICollectionViewDelegate 方法:
- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated;
参数-
indexpath : 单元格的索引路径
动画:是/否。
scrollPosition : 滚动时单元格的位置。从以下选项中选择:
垂直位置-
UICollectionViewScrollPositionTop
UICollectionViewScrollPositionCenteredVertically
UICollectionViewScrollPositionBottom
水平位置-
UICollectionViewScrollPositionLeft
UICollectionViewScrollPositionCenteredHorizontally
UICollectionViewScrollPositionRight
【讨论】:
【参考方案2】:首先,设置一个实例变量以指示您希望选中单元格。
self.selectedIndexPath = indexPath;
接下来,使用以下命令滚动到单元格:
[_calendarView scrollToItemAtIndexPath:indexPath atScrollPosition: UICollectionViewScrollPositionNone animated:YES];
从collectionView:cellForItemAtIndexPath:
返回单元格时,与实例变量进行比较。找到匹配项后,选择单元格,然后将实例变量设置为 nil
。
【讨论】:
以上是关于以编程方式选择尚未加载的 UICollectionView 单元格的主要内容,如果未能解决你的问题,请参考以下文章
iOS版;以编程方式uicollectionView与自定义标头
如何在IOS中以编程方式滚动UICollectionViewCell?