具有固定的collectionView宽度和动态高度

时间:2020-01-08 11:07:49

标签: ios swift

我正在重建移动应用程序上的UI。我已经通过CollectionView更改了tableView(因为有两列单元格)

我已经实现了在单元格上具有动态高度的功能,并且可以完美地工作,如您所见(左iOS和右Android),我正在尝试使用iOS实现android UI。

Ios and android version

目前,我要实现以下目标: https://www.vadimbulavin.com/collection-view-cells-self-sizing/

我正在尝试设置固定宽度,但这会自动调整内容的形状。

我认为这可能是一件小事,但是我很长一段时间都无法在iOS上工作,所以我正在寻找解释以实现固定宽度大小

控制器仅包含以下内容:

@IBOutlet weak var collectionViewFlowLayout: UICollectionViewFlowLayout!{
    didSet {

        self.collectionViewFlowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
    }
}

我还没有完成本教程的“最大宽度”部分。 单元格内的所有标签具有固定的左右约束,0行和自动换行符

谢谢!

祝你有美好的一天

本杰明

2 个答案:

答案 0 :(得分:0)

好吧,正如我从屏幕截图中看到的那样,每个单元格上已经具有自动高度。

为CollectionViewCell设置固定宽度:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    var height:CGFloat = 0.0
    if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
        height = layout.itemSize.height
    }
    let screenSize = UIScreen.main

    let wi = screenSize.bounds.size.width/2 // can calculate gap between two columns 

    return CGSize(width: wi, height: height)

}

答案 1 :(得分:0)

您需要对类UICollectionViewLayout进行自定义布局,并将其设置为您的集合视图。有很多Pinterest,例如收藏夹视图教程。您可以检查this