小编Nic*_*che的帖子

UICollectionView sizeForItemAt 被调用但大小不正确

我想让第一部分的单元格是集合视图的全宽,第二部分是宽度的一半。在启动时,尽管高度似乎受到尊重,但单元格不尊重给定的宽度。几秒钟后,集合视图会重新加载,并且大部分时间它会将单元格设置为正确的大小。当手机的方向更改为横向时,单元格再次以不正确的尺寸绘制。

我尝试使用 UICollectionViewDelegateFlowLayout 和 sizeForItemAt 委托函数来设置单元格大小,但即使调用该函数,它们也不遵循给定的大小。

目前,我正在设置部分插入,然后计算集合视图边界中单元格的剩余可用宽度,然后将宽度除以每行的单元格数。

class HomeCollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {

    let sectionInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

    override func viewDidLoad() {
        super.viewDidLoad()

        self.collectionView?.contentInsetAdjustmentBehavior = .always
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
        return CGSize(width: collectionView.frame.width, height: 44)
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        return self.sectionInsets
    }

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { …
Run Code Online (Sandbox Code Playgroud)

uicollectionview swift uicollectionviewdelegateflowlayout

1
推荐指数
1
解决办法
1426
查看次数