以编程方式选择尚未加载的 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 单元格的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 以编程方式从集合视图中选择第一个项目

iOS版;以编程方式uicollectionView与自定义标头

如何在IOS中以编程方式滚动UICollectionViewCell?

ag-grid 以编程方式选择行不突出显示

无法以编程方式选择Telerik RadDropDownList中的值

如何在 iPhone 上设置第一个以编程方式选择的 TabBar