UICollectionView滚动后更改单元格大小

3

我在控制器上有一个UICollectionView,其中包含两个部分。当我开始滚动时,它会改变单元格的大小。

enter image description here

我的布局代码:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let section = indexPath.section
    let row = indexPath.row
    if section == 0 {
        if (row == 0){
            let width = view.frame.width
            return.init(width: width, height: 120)
        }else{
            let width = view.frame.width
            return.init(width: width, height: 50)
        }
    }else{
        //
        //return.init(width: 200, height: 120)
     
        let width = collectionView.bounds.width / 2 - 10
        
        return.init(width: width, height: 253)
    }
    
    
}

产品在第二个部分,但看起来它从第一个部分获取了宽度

2个回答

5

请确保在故事板中将estimateSize设置为NONE。enter image description here


1
你的错误是在第0个区域设置了错误的大小,但是你又更改了另一个区域的单元格大小,你可以使用以下代码:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let width = collectionView.bounds.width / 2 - 10
    let height = collectionView.bounds.height
    return.init(width: width, height: height)

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接