5
我發現systemLayoutSizeFittingSize:
方法的不同行爲,然後我預期。systemLayoutSizeFittingSize:在UILabel上表現不像預期的那樣
這裏是剪斷了迅速遊樂場這表明了行爲,但其在Objective-C相同的代碼:
import UIKit
import Foundation
var label = UILabel()
label.text = "This is a Test Label Text"
label.numberOfLines = 0
label.font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
label.preferredMaxLayoutWidth = 40
let layoutSize = label.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
let intrinsicSize = label.intrinsicContentSize()
我本來預計layoutSize
和intrinsicSize
是相同的。
但在這種情況下layoutSize
是(w 173, h 20)
和intrinsicSize
是(w 40, h 104)
我希望既成爲intrinsicSize
但似乎systemLayoutSizeFittingSize:
忽略preferredMaxLayoutWidth
是有人能解釋一下?
編輯: 也
label.setNeedsLayout()
label.layoutIfNeeded()
let layoutSize = label.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
let intrinsicSize = label.intrinsicContentSize()
不會改變結果