需要固定大小的收集单元

问题描述 投票:0回答:1

我面临UICollectionView的问题。我希望所有单元格的大小都应固定。但我无法达到要求。

我想要输出:Actual Requirement

我得到的像是:Wrong Design

这是我的代码:

private var totalColumns: Int = 3
private var cellSpace: CGFloat = 10.0
private var width: CGFloat {
    var temp = (CGFloat(self.totalColumns - 1) * self.cellSpace)
    temp = (self.collectionPreference?.frame.size.width ?? SCREEN_WIDTH) - temp
    temp = temp / CGFloat(totalColumns)
    return temp
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    return CGSize(width: width, height: width)
}

//    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
//        return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
//    }

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return cellSpace
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return cellSpace
}

iOS 13之前,我可以用相同的代码来实现相同的UI(当时我正在搜索如何根据其内容设计单元格)。现在在iOS 13中,我正在努力实现固定大小的UI。...非常有趣...

我已采取的措施:Subviews in cell

[UIImageView约束条件:UIImageView Constraints

[ULabel约束条件:UILabel Constraints

任何人都有解决方案吗?

uicollectionviewcell ios13 swift5 xcode11.3
1个回答
0
投票

尝试一下:

override func viewDidLoad() {
    super.viewDidLoad()

    let cellSize = CGSize(width:80 , height:80) // your cell size

    let layout = UICollectionViewFlowLayout()
    layout.scrollDirection = .vertical //.horizontal
    layout.itemSize = cellSize
    layout.sectionInset = UIEdgeInsets(top: 1, left: 1, bottom: 1, right: 1)
    layout.minimumLineSpacing = 1.0
    layout.minimumInteritemSpacing = 1.0
    collectionPreference.setCollectionViewLayout(layout, animated: true)

    collectionPreference.reloadData()
}
  • 如果有任何问题请发表评论。
© www.soinside.com 2019 - 2024. All rights reserved.