【问题标题】:Have a fixed width of collectionView cell and dynamic height [duplicate]具有固定宽度的collectionView单元格和动态高度[重复]
【发布时间】:2020-01-08 11:07:49
【问题描述】:

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

我已经完成了在单元格上具有动态高度的工作,并且效果很好,正如您所看到的(iOS 左侧和 Android 右侧)我正在尝试使用 iOS 实现 android UI。

目前,我为实现这一目标而采取的措施: https://www.vadimbulavin.com/collection-view-cells-self-sizing/

我尝试设置固定宽度,但这会自动适应内容。

我认为这可能是一件小事,但我很久没有在 iOS 上工作了,所以我正在寻找解释以实现固定宽度大小

控制器只包含:

@IBOutlet weak var collectionViewFlowLayout: UICollectionViewFlowLayout!{
    didSet {

        self.collectionViewFlowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
    }
}

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

谢谢!

祝你有美好的一天

本杰明

【问题讨论】:

标签: ios swift


【解决方案1】:

嗯,正如我从屏幕截图中看到的,您已经在每个单元格上设置了自动高度。

为 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 或 2 列和不同的宽度
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 2020-03-08
    • 2014-04-17
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多