嘿,我正在尝试使用集合视图单元在视图控制器中显示一组“标签”,但我无法找到一种方法使它们能够根据字符串的长度动态调整大小。
现在,各个单元格的大小都是静态的,因此每当用超出单元格大小的字符填充单元格的字符串时,它就会进入第二行。我希望单元格可以根据字符串的长度改变长度。因此,如果它是标签“#Vegan”,它会自动调整大小,使标签不会那么大。同样,如果它是一个较长的字符串,例如“#LaptopFriendly”,它将在水平方向上变长以容纳该字符串,并且不使用第二行。垂直长度可以保持固定。谢谢你!
更新(当我使用 Rob 的代码遇到错误时界面生成器设置):
Simulator screenshot:
您需要标签和单元格之间有明确的约束(例如前导、尾随、顶部和底部约束):
然后你可以使用UICollectionViewFlowLayoutAutomaticSize
为了itemSize
你的collectionViewLayout
。别忘了设置estimatedItemSize
,也可以自动调整单元格大小:
override func viewDidLoad() {
super.viewDidLoad()
let layout = collectionView?.collectionViewLayout as! UICollectionViewFlowLayout
layout.itemSize = UICollectionViewFlowLayoutAutomaticSize
layout.estimatedItemSize = CGSize(width: 100, height: 40)
}
得出:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)