UILabel顯示定時(shí)器文本跳動(dòng)問(wèn)題的解決方法
先看一個(gè)有問(wèn)題的展示效果:
上面的gif圖會(huì)發(fā)現(xiàn)在顯示驗(yàn)證碼計(jì)數(shù)時(shí)出現(xiàn)跳動(dòng)和閃爍的問(wèn)題。目前大多數(shù)用來(lái)實(shí)現(xiàn)定時(shí)器顯示的控件都是UILabel。
在iOS9以前系統(tǒng)默認(rèn)的英文字體是Helvetica, 這種字體每個(gè)數(shù)字的寬度都是相等的。而在iOS9以后默認(rèn)的英文字體變?yōu)镾an Fransico字體,這種字體每個(gè)數(shù)字的寬度是不相等的。
正是因?yàn)閿?shù)字寬度的不相等就導(dǎo)致了用UILabel來(lái)顯示定時(shí)器文本時(shí)出現(xiàn)文字跳動(dòng)閃爍的問(wèn)題。 因此解決的方案就是選用一種等寬數(shù)字字體顯示即可。為此有兩個(gè)解決方案:
用Helvetica字體代碼默認(rèn)字體。
UILabel *label = [UILabel new]; label.font = [UIFont fontWithName:@"Helvetica" size:16];
用UIFont的新API: + (UIFont *)monospacedSystemFontOfSize:(CGFloat)fontSize weight:(UIFontWeight)weight;
UILabel *label = [UILabel new]; //記得這個(gè)API是iOS9以后才有效!??! label.font = [UIFont monospacedSystemFontOfSize:16 weight:UIFontWeightRegular];
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
- iOS開(kāi)發(fā)中使用UILabel設(shè)置字體的相關(guān)技巧小結(jié)
- iOS中UILabel設(shè)置居上對(duì)齊、居中對(duì)齊、居下對(duì)齊及文字置頂顯示
- iOS長(zhǎng)按UIlabel實(shí)現(xiàn)可復(fù)制功能
- iOS應(yīng)用中UILabel文字顯示效果的常用設(shè)置總結(jié)
- iOS App開(kāi)發(fā)中修改UILabel默認(rèn)字體的方法
- iOS 設(shè)置UILabel的行間距并自適應(yīng)高度的方法
- iOS UILabel 設(shè)置內(nèi)容的間距及高度的計(jì)算示例
- iOS開(kāi)發(fā)筆記--詳解UILabel的相關(guān)屬性設(shè)置
相關(guān)文章
iOS NSURLSessionDownloadTask實(shí)現(xiàn)文件斷點(diǎn)下載的方法
本篇文章主要介紹了iOS NSURLSessionDownloadTask實(shí)現(xiàn)文件斷點(diǎn)下載的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01ios 不支持 iframe 的完美解決方法(兼容iOS&安卓)
下面小編就為大家?guī)?lái)一篇ios 不支持 iframe 的完美解決方法(兼容iOS&安卓)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07iOS 檢測(cè)網(wǎng)絡(luò)狀態(tài)的兩種方法
一般有Reachability和AFNetworking監(jiān)測(cè)兩種方式,都是第三方的框架,下文逐一詳細(xì)給大家講解,感興趣的朋友一起看看吧2016-10-10詳解iOS App設(shè)計(jì)模式開(kāi)發(fā)中對(duì)于享元模式的運(yùn)用
這篇文章主要介紹了iOS App設(shè)計(jì)模式開(kāi)發(fā)中對(duì)于享元模式的運(yùn)用,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-04-04