我有一個UILabel
,它以格式MM:ss:SS
(分鐘,秒,釐秒)顯示計時器的輸出,但是它會從左到右「搖動」釐秒變化 - 例如,「11」比「33」窄。iOS在數字變化時防止計時器UILabel'抖動'
有什麼辦法可以緩解嗎?我嘗試過將它定中心,給它一個固定的寬度,但他們似乎沒有幫助。
我有一個UILabel
,它以格式MM:ss:SS
(分鐘,秒,釐秒)顯示計時器的輸出,但是它會從左到右「搖動」釐秒變化 - 例如,「11」比「33」窄。iOS在數字變化時防止計時器UILabel'抖動'
有什麼辦法可以緩解嗎?我嘗試過將它定中心,給它一個固定的寬度,但他們似乎沒有幫助。
從iOS 9.0開始,系統字體使用比例數字。如果你想要等寬數字,你可以使用+[UIFont monospacedDigitSystemFontOfSize:weight:]
獲得一個變體字體。這僅適用於系統字體。
如果你想使用另一種字體,你可以嘗試要求一個等寬的變體,但可能沒有。給定一個UIFont
,你可以請求它的fontDescriptor
,然後要求使用-[UIFontDescriptor fontDescriptorWithSymbolicTraits:]
和UIFontDescriptorTraitMonoSpace
的一個相同的字體描述符,這個描述符是等寬的(不僅僅是數字)。然後,您可以通過將新的字體描述符傳遞到+[UIFont fontWithDescriptor:size:]
來創建新的字體。
但是,我懷疑是否有Impact的等寬變體。它不適合你的目的。
使用等寬字體,也稱爲固定間距,固定寬度或非比例字體,是一種字體,每個字母和字符都佔用相同數量的水平空間。等寬字體的示例包括Courier,Courier New,Lucida Console,Monaco和Consolas
只有Courier,Courier New包含在Xcode項目中。但是,這些字體每個字符都有相同的寬度。不錯。 – coolcool1994
給一個具有最高可能性的標籤的固定寬度約束。因爲前33:33:33應該完全包含在其中。給標籤一些背景顏色。它會在一定程度上解決你的問題 –
使用textkit,你可以指定所有的數字應該是相等的寬度。 – milo526