我已经建立了一个故事板,它有一个堆栈视图,其中包含一组标签,每个标签都与一个特定的部分有关。在这个标签堆栈下面运行一个集合视图,其项单元格大小取决于其正上方的标签。
也就是说,第一列的单元格大小通过编程将宽度和高度设置为标签正上方的宽度。
我是通过以下方式来实现这一点的:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {}
问题是,返回的标签的宽度,
label.bounds.width
等于脚本“视图为:”当前处于打开状态,而不是模拟器正在运行。
即
如果我的故事板是“viewsas:iphone 7”,而我的模拟器运行的是iphone 5,那么返回的标签宽度等于iphone7中的标签宽度。不过,如果模拟器与故事板中的“视图为:”匹配,则任何设备都可以完美工作。
我的所有约束都设置好了,标签堆栈和collection视图可以调整大小,而不必考虑任何iphone/ipad。只是细胞宽度似乎是问题所在。
我刚刚开始ios开发,所以我可能不太熟悉这些对彼此的影响。
最佳答案
如果有人有类似的问题,我在我的项目中通过以下方式解决了此问题:
// collectonViewOutlet is an outlet to the collection view I am working
// with
override func viewWillLayoutSubviews() {
collectionViewOutlet.reloadData()
}
关于ios - Storyboard View (iphone 4/5/6)布局会影响收集单元的大小(以编程方式设置),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44190612/