項目中我們經常會,用到動態計算文字寬高,而蘋果官方就給我們提供了這樣的方便 sizeToFit 和 sizeThatFits:。
先來說下 sizeToFit 先看效果:
label.text 賦值後即使frame寬高都是0 也不影響效果。 sizeToFit 會根據 字體大小 和多少計算出最優的 size 並改變自身的 size。
那再來看看sizeThatFits:的效果:
sizeThatFits 返回計算的size 不改變自身size , 此方法傳入的size 是根據指定size 範圍來計算得出的size CGSizeMake(100, CGFLOAT_MAX), 沒有指定 size 需求的話可 [label sizeThatFits:CGSizeZero]; 但這樣高度不會變化 。
sizeThatFits 和 sizeToFit 當設置多行顯示時,兩者又體現出區別,sizeThatFits並不會折行顯示,sizeToFits會在設置的寬度內這行顯示。這實際上又從另一方面驗證了官方的解釋。
知其然,更要知其所以然,學習沒有捷徑,堅持和專研是硬道理,多分享則樂趣無窮!歡迎關注後續博文!