#13 研究顯示文字的 UILabel(hw#2–5)

結論整理:

  • Line Breaks,用預設 Truncate Tail 的就行了
  • Autoshrink 用預設的 Fixed Font Size 就行,或是如果有自動調整,選Minimum Font Scale 最小字體比例
  • Shadow 陰影,應該就是小小偏移一下就好,如果在 table view cell 裡可以加 Highlighted 強調一下點擊時的文字效果。

先拉一個 UILabel,設定一下背景色,因為要測換行效果,所以 Lines 要大於1, 先設成2, 然後貼一段會超過容器的內容進去

iPhone 15 Pro 是首款支援 USB 3 的 iPhone,不但資料傳輸速度跨步提升,專業工作流程更是空前快速。

先察看一下 Line Breaks,預設是 Truncate Tail

可以看到 Line Breaks 選項分為三大塊,我們先觀察各種設定的效果

換行

Character Wrap 以字母為單字換行,下圖 “iPhone” 的 e 被換到下一行。

Word Wrap 以字為單位換行,如果容器的左邊放不下一整個單字,就換到下一行

換行裁切

Clipping 直接裁切放不下的內容, 字可能被切到部份,顯示不完整的字。像”業”就被切掉一部份。但因為只有在最後一行會放不下,可以換行的部份看起來預設是 Word Wrap。

省略

Truncate Head 省略號在開頭處,最後一行,保留剩下的內容最尾端的字。

Truncate Middle 省略號字形在中間,最後一行,保留剩下的內容前後端的字。

Truncate Head 省略號行末尾,最後一行,保留剩下的內容開頭的字。

相關的API可以看 NSLineBreakMode

Autoshrink

看一下Apple的文件說明:adjustsFontSizeToFitWidth

通常,標籤會使用您在字體屬性中指定的字體繪製文字。 如果此屬性為 true,且文字屬性中的文字超出了標籤的邊界矩形,則標籤會減少字體大小,直到文字適合或將字體縮小到最小字體大小。

該屬性的預設值為 false。 如果將其變更為 true,請確保也透過修改minimumScaleFactor 屬性來設定適當的最小字體比例。

此自動收縮行為僅適用於單行標籤。 若要在 Interface Builder 中啟用 adjustmentFontSizeToFitWidth,請從標籤屬性檢視器的「自動縮小」彈出式功能表中選擇「Minimum Font Scale 最小字體比例」。

從上面的說明,可以知道,自動收縮行為僅適用於單行標籤,所以看上圖,當設定 Lines 為 1 時,才會發揮作用

看一下Apple的文件說明:minimumFontSize (Deprecated)

已棄用:請使用minimumScaleFactor 代替。

繪製標籤文字時允許的最小字體大小。

當繪製可能不適合標籤邊框的文字時,您可以使用此屬性來防止標籤將字體大小減小到不再清晰的程度。 該屬性的預設值為 0.0。 如果您啟用標籤的字體調整,則應始終增加該值。 此屬性僅在 numberOfLines 為 1 時有效。

看官方文件,他是建議我們使用 Minimum Font Scale 最小字體比例。

Shadow (文字的陰影)

Highlighted:Label放在Table View的Cell時,點選後會有強調效果。

Shadow:設定文字的陰影顏色

Shadow offset:設定文字陰影和文字顏色偏離的距離

參考:

--

--