使用 UICollectionView 页脚中的对象

Posted

技术标签:

【中文标题】使用 UICollectionView 页脚中的对象【英文标题】:Working with objects that are in a UICollectionView footer 【发布时间】:2013-08-15 21:26:42 【问题描述】:

我有一个带有一堆单元格和一个页脚的 UICollectionView。在此页脚中,我有一个按钮和标签,我想用它来做一些事情(更改标签的文本,为按钮设置动画等)。所以我尝试为我的控制器创建一个出口,以便我可以使用这些对象,但是当我这样做时,我收到一个错误,说我有一个非法的配置:连接不能有一个原型对象作为它的目的地。为什么是这样?有什么办法可以解决吗?

非常感谢!

【问题讨论】:

【参考方案1】:

不要通过IBOutlet 连接这些 UI 元素,而是在您的 NIB 或情节提要文件中为它们设置标签值,并使用该值引用它们。例如:

如果你将UILabel标签设置为5

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath



      UICollectionReusableView *footerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView" forIndexPath:indexPath];

      UILabel *label = (UILabel*)[footerView viewWithTag:5];
      label.text = //set text;

      return footerView;


正如代码和您的错误所暗示的那样,页眉和页脚视图以及UICollectionView 的单元格被重用。 IBOutlets 指的是导致您的问题的单个对象。

【讨论】:

这是对我帮助最大的解决方案。在 UICollectionView 和 UITableView 的大多数情况下,它们是单个部分。所以只需将标签设置为 indexPath.item

以上是关于使用 UICollectionView 页脚中的对象的主要内容,如果未能解决你的问题,请参考以下文章

在 UICollectionView 底部加载其他单元格

Wordpress使用css删除页脚中的水印

返回正确大小的页脚时,部分页脚中的 UITableView 随机白线

Crystal Report:报表页脚中的条件基数

如何使用epplus将页脚中的页码设置为从指定的数字开始

Bootstrap 3 - 页脚中的链接在移动版本上不起作用