【问题标题】:How to set constraints on a UICollectionViewCell?如何在 UICollectionViewCell 上设置约束?
【发布时间】:2019-03-23 21:43:48
【问题描述】:
我希望单元格的宽度与每个屏幕尺寸的屏幕宽度相同。我无法在情节提要中设置约束,因为该选项是灰色的,并且以编程方式设置它们会导致错误提示“无法使用锚激活约束......因为它们没有共同的祖先”,即使我是仅将约束设置为视图的前导和尾随锚点。
故事板现在的设置方式,单元格在 iphone SE 上具有所需的宽度,在较大的屏幕尺寸上具有相同的宽度。
【问题讨论】:
标签:
ios
swift
uicollectionview
uistoryboard
nslayoutconstraint
【解决方案1】:
你可以使用委托方法
viewcontroller:UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize.init(
width: collectionView.bounds.height,
height: collectionView.bounds.height
)
}
【解决方案2】:
这可能会帮助您将collectionView 宽度设置为与屏幕宽度相同。
在你的viewDidLoad() 写下这段代码
let height: CGFloat = 100.0 //Some constant
let width: CGFloat = self.view.frame.width
let spLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
spLayout.itemSize = CGSize(width: width, height: height)