无法从视图控制器访问 UICollectionView 补充视图?

Posted

技术标签:

【中文标题】无法从视图控制器访问 UICollectionView 补充视图?【英文标题】:No way to access UICollectionView supplementary views from view controller? 【发布时间】:2014-03-15 00:03:23 【问题描述】:

我有UICollectionView 带有一系列单元格,并且对于每个单元格,都有一些隐藏的注释。注释仅在选择相关项目时显示。所以我在控制器的collectionView:didSelectItemAtIndexPath: 方法中添加了以下代码块:

WESpan *span = self.selectedSpan;
for (UIView *view in self.collectionView.subviews) 
    if ([view isKindOfClass: [AnchorCell class]]) 
        view.hidden = ((AnchorCell*)view).anchor.span != span;
    

这行得通...但对我来说似乎很难看,我必须对所有subviews 进行循环,并进行isKindOfClass: 检查。没有更好的方法来做到这一点吗?更惯用的东西?

我希望有一个类似于 cellForItemAtIndexPath: 方法的方法,这样我就可以只获取与适当索引相关的那些并隐藏/取消隐藏它们。

【问题讨论】:

【参考方案1】:

collectionView:viewForSupplementaryElementOfKind:atIndexPath: ?

如果您想更新supplementaryView 中的值,您可以随时更新您的模型,然后重新加载collectionView 的部分。

[collectionView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section]];

【讨论】:

这不是数据源委托实际实现的方法来按需为UICollectionView 制造一个。我不想发送一条只会去队列并配置新消息的消息...我想访问 UICollectionView 拥有的消息,我的代表使用该方法创建了该消息。

以上是关于无法从视图控制器访问 UICollectionView 补充视图?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Objective-C 视图控制器访问 Swift var - iOS

无法从控制器 laravel 访问视图中的变量

(Rails)从不同视图中的控制器访问方法

从 SKScene 呈现后无法关闭视图控制器

从推送视图访问第一个导航控制器中的方法和变量

图像不适合收集Cell