问题描述
当我想访问collectionview的页眉或页脚时,只需获取其实例:
guard let footer = collectionView.supplementaryView(forElementKind: UICollectionView.elementKindSectionFooter,at: IndexPath(item: 0,section: footerIndexPath!.section)) as? CollectionFooter else { return }
现在,我可以访问页脚内部的视图并更改其值。我该如何使用表格视图?
我在第一部分尝试了以下内容:
guard let footer = tableView.footerView(forSection: 0) as? TableFooter else { return }
并且它不起作用,即它不会超出保护声明,即我无法获得页脚实例。我只有1个分区,所以只有1个页脚。
下面是我声明页脚的方式。
override func tableView(_ tableView: UITableView,viewForFooterInSection section: Int) -> UIView? {
guard let footer = tableView.dequeueReusableheaderfooterView(withIdentifier: footerIdentifier) as? TableFooter else { return nil }
footer.delegate = self
return footer
}
还有我的页脚子类:
class TableFooter: UITableViewheaderfooterView {
// initializing delegate & other variables
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
解决方法
现在我可以访问页脚内部的视图并更改其值
不,您不能。 似乎在您的收藏夹视图中起作用的事实只是一个小麻烦。在收藏夹视图中所做的事情总是错误的。
如果要更改部分页脚在集合视图或表格视图中显示的内容,请不要 not 直达该视图并弄乱其子视图。相反,进入您的数据模型并进行更改,然后 reload 该部分,以便重新生成视图。对于单元格,页眉,页脚等都是如此。