故事板视图(iphone 4/5/6)影响集合单元大小的布局(以编程方式设置)

Posted

技术标签:

【中文标题】故事板视图(iphone 4/5/6)影响集合单元大小的布局(以编程方式设置)【英文标题】:Storyboard view(iphone 4/5/6) layout effecting collection cell size (programmatically set) 【发布时间】:2017-05-25 22:13:35 【问题描述】:

我设置了一个带有堆栈视图的故事板,其中包含一组标签,每个标签都与特定部分有关。在这堆标签下方运行一个集合视图,其项目单元格大小取决于其正上方的标签。

即第一列的单元格大小的宽度和高度以编程方式设置为其正上方标签的宽度。

我是通过以下方式完成的:

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

问题是,返回的标签的宽度,

label.bounds.width

等于情节提要“查看为:”当前打开的内容,而不是正在运行的模拟器。

如果我的故事板是“查看为:iphone 7”,并且我的模拟器正在运行 iphone 5,则返回的标签宽度等于 iphone 7 中的标签宽度。但是,如果模拟器与“查看如:" 在情节提要中,一切都适用于任何设备。

我的所有约束都已设置,并且标签堆栈和集合视图会调整大小,而不管任何 iphone/ipad。只是单元格宽度似乎是问题所在。

我刚刚开始 ios 开发,所以我可能不太熟悉这些如何相互影响。

【问题讨论】:

【参考方案1】:

如果有人遇到类似问题,我通过以下方式在我的项目中解决了这个问题:

// collectonViewOutlet is an outlet to the collection view I am working 
// with
    override func viewWillLayoutSubviews() 
         collectionViewOutlet.reloadData()
        

【讨论】:

以上是关于故事板视图(iphone 4/5/6)影响集合单元大小的布局(以编程方式设置)的主要内容,如果未能解决你的问题,请参考以下文章

从集合视图单元格内的按钮按下实例化故事板

Swift 4:将数据从集合视图单元传递到另一个没有故事板的视图控制器

故事板中的自定义单元格行高度设置没有响应

非故事板 xib 的容器视图未显示

如何将 UIImages 数组添加到集合视图

如何在iphone中从一个视图转到故事板的第一个视图