如何解决UICollectionViewCompositionalLayout项目大小错误
我目前遇到的布局布局问题也可以在Apple's example-> ConferenceNewsFeedViewController中看到。项目高度设置为.estimated(100)
,宽度设置为.fractionalWidth(1.0)
。在初始显示中,单元格未包装标签内容。仅当您开始滚动时,才更正单元格的布局。有人知道如何解决此问题吗?
这是不正确的布局:
这是滚动后的布局:
我知道可以使用以下内容“修复”它,但这听起来更像是一种肮脏的解决方法:
dispatchQueue.main.async {
self.collectionView.collectionViewLayout.invalidateLayout()
}
对此有任何帮助。
最好, 卡斯滕
解决方法
您可以使用此方法设置单元格的大小。
func collectionView(_ collectionView: UICollectionView,layout collectionViewLayout: UICollectionViewLayout,sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: width,height: height)
}
,我自己也遇到过同样的问题。就我而言,我有以下设置:
- CellSubclass:UICollectionViewListCell
- CellContentView:UIContentView
在我的 CellContentView 中,我已经像这样覆盖了 layoutSubviews
:
override func layoutSubviews() {
super.layoutSubviews()
invalidateIntrinsicContentSize()
}
有时仍然会出现一些小故障,但这比加载时布局错误要好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。