UICollectionViewCell 不强制单元格大小
Posted
技术标签:
【中文标题】UICollectionViewCell 不强制单元格大小【英文标题】:UICollectionViewCell not forcing Cell Size 【发布时间】:2019-10-18 14:33:27 【问题描述】:我正在使用
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
return CGSize(width: 400, height: 600)
指定我的CollectionView
的单元格大小。它工作正常,但只要我在单元格的ContentView
内向我的UILabel
添加宽度约束(UILabel.width == ContentView.width)
,单元格的宽度就会缩小到UILabel
的固有宽度。
我正在使用UICollectionViewDelegateFlowLayout
和水平滚动。
如何强制ContentView
坚持我指定的单元格大小并让子视图遵循自动布局约束?
【问题讨论】:
如果单元格宽度为 400,则减去 uilabel 两侧的填充并直接设置,而不是仅添加左右约束 我的单元格大小实际上是根据屏幕大小计算的,所以不能按照您的方式进行。 但是你写 return CGSize(width: 400, height: 600) 这意味着你所有的单元格大小应该是这样的。 是的,单元格应该是 400x600,但是当我在 UILabel 上添加大小限制时不是这样。 如果单元格大小是动态的,则有两个,首先您需要获取该标签的 intrinsicContentSize ,第二个是编写您的 flowLayout 并从此方法返回相应的大小 【参考方案1】:问题是在情节提要中,您的集合视图的 Estimate Size 配置为自动:
如果您希望遵循 sizeForItemAt
实现而不是内部约束,则需要将其设置为 None。
【讨论】:
谢谢。这正是问题所在。 没问题,很乐意提供帮助。以上是关于UICollectionViewCell 不强制单元格大小的主要内容,如果未能解决你的问题,请参考以下文章
带有 UIButton 单选按钮的 UICollectionViewCell - 一次选择一个单选按钮
DAO.Recordset MySQL 后端在字符串周围强制使用单引号