1. 两个方法
- sizeToFit()
- sizeThatFits(_ size: CGSize) { }
2. sizeThatFit(_ size: CGSize)
看下文档中,sizeThatFit(_ size: CGSize) {}的注释,
return 'best' size to fit given size. does not actually resize view. Default is return existing view size
对于给到的size参数,返回“最佳”的size,实际上并没有改变view的size。默认情况下返回当前view的size。
3. sizeToFit()
再看下文档中sizeToFit的解释,
calls sizeThatFits: with current view bounds and changes bounds size.
该方法会触发sizeThatFits方法,参数就是当前view的bounds,同时会改变该bounds的size。
4. 在UIToolBar子类中的使用
class CustomToolBar: UIToolBar {}
fileprivate extension CustomToolBar {
override func sizeThatFits(_ size: CGSize) {
var size = super.sizeThatFits(size)
size.height = 44
return size
}
func _setupUI() {
sizeToFit() // 会触发sizeThatFit(_ size: CGSize)
...
...
}
}
网友评论