Ho trovato un comportamento diverso del metodo systemLayoutSizeFittingSize:
che mi aspettavo.systemLayoutSizeFittingSize: su UILabel non si comporta come previsto
Ecco un codice di snipped per un parco giochi rapida, che illustra il comportamento, ma la sua lo stesso in 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()
mi sarei aspettato che layoutSize
e intrinsicSize
sono gli stessi.
Ma in questo caso è layoutSize
(w 173, h 20)
e intrinsicSize
è (w 40, h 104)
mi aspetto sia per essere il intrinsicSize
ma sembra systemLayoutSizeFittingSize:
ignora il qualcuno preferredMaxLayoutWidth
è in grado di spiegare a me?
Edit: anche
label.setNeedsLayout()
label.layoutIfNeeded()
let layoutSize = label.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize)
let intrinsicSize = label.intrinsicContentSize()
non cambia i risultati