NSLayoutConstraint 更改后,systemLayoutSizeFittingSize 不起作用
Posted
技术标签:
【中文标题】NSLayoutConstraint 更改后,systemLayoutSizeFittingSize 不起作用【英文标题】:After NSLayoutConstraint changed, systemLayoutSizeFittingSize is not working 【发布时间】:2015-07-24 04:13:10 【问题描述】:我正在 swift 上使用 Autolayout,我想动态更改 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
【问题讨论】:
【参考方案1】:替换这个
let height = cell.contentView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
下面的代码
let height =cell.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize, withHorizontalFittingPriority: UILayoutPriorityDefaultHigh, verticalFittingPriority: UILayoutPriorityDefaultLow)
【讨论】:
以上是关于NSLayoutConstraint 更改后,systemLayoutSizeFittingSize 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
更改 NSLayoutConstraint 时的 SWIFT 动画
如何以编程方式更改或更新 NSLayoutConstraint
我可以更改 NSLayoutConstraint 的乘数属性吗?
NSLayoutConstraint 的 Unsatisfiable Constraint 以编程方式更改 - swift