UICollectionViewFlowLayout 委托 insetForSectionAt 从未调用

Posted

技术标签:

【中文标题】UICollectionViewFlowLayout 委托 insetForSectionAt 从未调用【英文标题】:UICollectionViewFlowLayoutDelegate insetForSectionAt never called 【发布时间】:2017-02-10 11:19:47 【问题描述】:

swift3

我需要使用UICollectionViewDelegateFlowLayout 的一些optional 方法,但是永远不会调用下面的方法。

insetForSectionAt

optional public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets

由于UICollectionViewDelegateFlowLayout 继承自UICollectionViewDelegate - 我需要做的就是分配collection'sView 委托:

self.collectionView.delegate = self.delegate

请注意,其他一切都可以正常工作,并且会调用 sizeForItemcellForItem 等方法。

【问题讨论】:

和这个***.com/questions/41182854/…比较 这些答案对我来说似乎没有用 -> “实现自定义流布局类” => 不,你不必这样做。或者他们建议支持 flowDelegateProtocol => 但没关系,它只是用于编译器 你现在需要实现它,尝试实现UICollectionViewDelegateFlowLayout它肯定会工作。 【参考方案1】:

请确定你是否在你的类中实现了 UICollectionViewDelegateFlowLayout,如下所示:

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout 

//...your code here

【讨论】:

你不是说没有调用方法吗? 这很奇怪,但可以正常工作,我会回答但也接受你的回答

以上是关于UICollectionViewFlowLayout 委托 insetForSectionAt 从未调用的主要内容,如果未能解决你的问题,请参考以下文章