【问题标题】:No way to access UICollectionView supplementary views from view controller?无法从视图控制器访问 UICollectionView 补充视图?
【发布时间】: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: 方法的方法,这样我就可以只获取与适当索引相关的那些并隐藏/取消隐藏它们。

【问题讨论】:

    标签: ios ios7 uicollectionview


    【解决方案1】:

    collectionView:viewForSupplementaryElementOfKind:atIndexPath: ?

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

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

    【讨论】:

    • 这不是数据源委托实际实现的方法来按需为UICollectionView 制造一个。我不想发送一条只会去队列并配置新消息的消息...我想访问 UICollectionView 拥有的消息,我的代表使用该方法创建了该消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2013-02-20
    • 2015-12-22
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多