intrinsicContentSize
为uiview组件的固有大小。在autolayout中,若没有指定宽高,控件的大小就以它为准。
当需要改变固有大小时,调用func invalidateIntrinsicContentSize
方法,便能通知系统它的值改变了。
override func layoutSubviews() {
super.layoutSubviews()
if self.frame.size.equalTo(self.intrinsicContentSize) == false {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
return self.contentSize
}
处理方法也适用于普通的uiview, intrinsicContentSize
指定为计算好的大小即可。