一尘不染

快速的UICollectionview的自定义页脚视图

swift

我正在快速重写min的Objective-C应用程序,并决定在我的情况下,集合视图比表视图更好。所以我的collectionview都完全按照我的需要进行了设置,现在我需要在我的collection视图中添加页脚。

在Objective-C中,这对我来说非常容易,我要做的就是创建一个UIView,向其中添加对象,然后将其添加到我的tableview中。

self.videoTable.tableFooterView = footerView;

现在,我一直在尝试在收藏视图中获得类似的解决方案,但是到目前为止,我还没有运气。

是否有一个简单的.collectionviewFooterView或可以添加我的UIView的东西?

编辑 我在这里找到了类似的想法,如果这有助于创建答案

编辑

我一直在思考实现此目的的方法,所以现在我的想法是使用以下代码将页脚视图添加到集合视图的末尾:

var collectionHeight = self.collectionView.collectionViewLayout.collectionViewContentSize().height

footerView.frame = CGRectMake(0, collectionHeight, screenSize.width, 76)

我在此解决方法中遇到的唯一问题是我需要向colletionView的contentView添加更多空间,而我对此没有运气

我的解决方案

我使用一种变通方法解决了问题(不是最漂亮的方法,但是它可以工作),我使用一个简单的方法将UIView添加到uicollectionview中

footerView.frame = CGRectMake(0, collectionHeight - 50, screenSize.width, 50)
self.collectionView.addSubview(footerView)

并使用以下命令设置布局插图:

alLayout.contentInsets = UIEdgeInsetsMake(2, 2, 52, 2)

阅读 260

收藏
2020-07-07

共1个答案

一尘不染

集合视图对页眉和页脚的处理方式与表视图不同。您需要:

  1. 使用以下方法注册页脚视图类:

    registerClass(myFooterViewClass, forSupplementaryViewOfKind: UICollectionElementKindSectionFooter, withReuseIdentifier: "myFooterView")
    
  2. 无论是设置headerReferenceSize在您的收藏视图布局或者实现collectionView:layout:referenceSizeForHeaderInSection:你的delegate

  3. 从您的以下方法返回页脚视图dataSource

    func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView {
    let view = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionFooter, withReuseIdentifier: "myFooterView", forIndexPath: indexPath)
    // configure footer view
    return view
    

    }

我认为就是一切!

2020-07-07