swift - UICollectionViewCells 在下一轮绘图之前不受约束

标签 swift uicollectionview autolayout

如何让我的 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/

相关文章:

ios - 动画约束导致不同的初始位置

ios - 自动布局约束以改变方向的组成

ios - Swift:CMAuthorizationStatus 变化的监听器

ios - 可针对任何尺寸类别进行调整的文本尺寸

ios - 如何使用点击手势从 UIImageView 显示 UIImagePickerController

ios - collectionView.cellForItem(在 : indexPath) not working properly

ios - UITableViewCell 中的 Size 类自定义

ios - 下载 PDF 并保存到 iPhone 中的 "Files",而不是应用程序数据,Swift

swift - 以编程方式增加 indexPath

iphone - UICollectionView制作EPG