如何在单元格大小更改后自动调整 CollectionViewCell 中的内容大小?

Posted

技术标签:

【中文标题】如何在单元格大小更改后自动调整 CollectionViewCell 中的内容大小?【英文标题】:How to auto resize contents in CollectionViewCell after the cell's size changed? 【发布时间】:2016-12-11 18:15:41 【问题描述】:

在 Xcode 中,我创建了一个 UICollectionView 并将一些标签拖到 UICollectionViewCell。问题是在更换设备时,单元格不会将其大小调整为屏幕大小。于是我实现了以下代码:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 

let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout

layout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

return CGSize(width: self.collectionView.frame.width * 0.9, height:self.collectionView.frame.height *0.8)   


在此之后,我注意到单元格的大小确实发生了变化。但是,单元格内标签的宽度和高度保持不变。

我不确定如何解决这个问题。

提前感谢您的帮助!!

【问题讨论】:

设置标签相对于单元格的约束以使其灵活。如果您想要更合适的答案,请向我们展示您希望标签放置方式的确切图像。 【参考方案1】:

设置标签的约束,

喜欢,

for Constraint pic.

your label pic.

或者你也可以使用 UI 属性autoresizingMask

喜欢,

yourLbl.autoresizingMask = [.flexibleWidth, .flexibleHeight]

【讨论】:

以上是关于如何在单元格大小更改后自动调整 CollectionViewCell 中的内容大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局来调整表格视图单元格中的视图大小?

更改单元格大小后的 scrollToItemAtIndexPath

如何强制 uitableview 调整单元格的大小(在停用高度约束后)?

如何让excel表格自动适应文字长度?

如何在 iOS 8 中使用自动布局和自动调整单元格大小

如何自动调整单元格大小以适合每行 4 个 [重复]