我在 swift 上使用自动布局,我想动态更改 UICollectionViewCell
的 UIImageView
高度。
我尝试过如下。
但是,似乎 systemLayoutSizeFittingSize
不起作用。
class CellImage: UICollectionViewCell {
@IBOutlet weak var imageHeight:NSLayoutConstraint!
.
.
.
internal func setup() {
self.imageHeight.constant = 200
self.layoutIfNeeded()
}
.
.
.
class func sizeForRow(#collectionView: UICollectionView, content: Content) -> CGSize {
var cell = UINib(nibName:"name", bundle: nil).instantiateWithOwner(self, options: nil).first as! CellImage
let width = CGRectGetWidth(collectionView.bounds)
cell.frame.size.width = width
cell.setup()
let height = cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
return CGSizeMake(width, height) // not correct
}
}
最佳答案
替换这个
let height = cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
使用下面的代码
let height =cell.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize, withHorizontalFittingPriority: UILayoutPriorityDefaultHigh, verticalFittingPriority: UILayoutPriorityDefaultLow)
关于ios - NSLayoutConstraint 更改后,systemLayoutSizeFittingSize 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31602065/