如何让我的 UICollectionViewCells 立即强制执行它们的约束?
示例日志: 我的框架:(7.5、57.5、150.0、175.0)
容器框架:(10.0, 10.0, 154.0, 154.0)
我的Frame是collectionViewCell的frame
容器框架是约束为宽高比 1:1 的 View 框架,然后从顶部、左侧和右侧插入 10 个。
在我调用 super.layoutSubviews()
后,这些日志会在 override func layoutSubviews()
中打印出来,正如您所看到的,约束没有被执行荣幸。当我在 collectionView 上 reloadData()
时,一切都很好,但第一次显示单元格时,一切都不稳定。
154 来自界面构建器,这是容器 View 的大小。 150x175 来自 collectionViewDelegateFlowLayout。
我愿意分享代码,但这 90% 是界面构建器。我在代码中所做的就是通过 UICollectionViewDelegateFlowLayout 更改大小,然后更改单元格的布局 subview 中的大小(尝试调整大小,以便在单元格更改大小后它们是正确的大小)
请帮忙!这让我发疯。
最佳答案
创建单元格后
cell.setNeedsLayout()
cell.layoutIfNeeded()
我不知道为什么这有效,而layoutSubviews却不起作用
关于swift - UICollectionViewCells 在下一轮绘图之前不受约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58635740/