Swift UICollectionViewLayout,contentSize

Swift UICollectionViewLayout, whither contentSize

我正在将我的应用程序从 Obj-C 转换为 Swift。

我有这个 UICollectionViewLayout 的子类,它覆盖了 'prepareForLayout',它已重命名为 'prepare'。 到目前为止,一切都很好。 但是,在我的 obj-c 代码中,我有这一行:

self.contentSize = CGSizeMake(contentWidth, contentHeight+40);

其中 'self' 指的是自定义 UICollectionViewLayout。

现在,在Swift,当我尝试做

self.contentSize = CGSize(width: contentWidth, height: contentHeight+40)

我收到此错误声明

Value of type 'myCustomCollectionLayout' has no member 'contentSize'

我知道有类似 collectionViewContentSize 的东西,但它似乎不适合这里。

我希望你们中的任何人都可以建议我如何进行

contentSize 不是 UICollectionViewLayout 属性,它是 属性 on UICollectionViewUIScrollView.

    collectionView?.contentSize = CGSize(width: contentWidth, height: contentHeight+40)

但是,为什么在 collectionview 布局中需要这个。您真的应该考虑覆盖 属性 collectionViewContentSize,这正是 contentSize 为 UIScrollView 所做的,

override var collectionViewContentSize: CGSize {
    return CGSize(width: contentWidth, height: contentHeight+40) 
}