如何获取tableview页脚collectionview已经可以实现

问题描述

当我想访问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 该部分,以便重新生成视图。对于单元格,页眉,页脚等都是如此。