修改前,有問(wèn)題的展示效果:
如上所示倒計(jì)時(shí)重新計(jì)數(shù)時(shí)展示文本UILabel
出現(xiàn)跳動(dòng)和閃爍的問(wèn)題莲兢。
產(chǎn)生原因:
在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ù)字字體顯示即可减细。
(產(chǎn)生原因引自作者:歐陽(yáng)大哥2013
鏈接:http://www.reibang.com/p/531c41e7950a)
解決方案:
- 使用用Helvetica字體.
UILabel *recordTimeLabel = [UILabel new];
recordTimeLabel.font = [UIFont fontWithName:@"Helvetica" size:26];
- 使用UIFont的API
monospacedDigitSystemFontOfSize:
UILabel *recordTimeLabel = [UILabel new];
//'monospacedDigitSystemFontOfSize:',iOS9之后支持
recordTimeLabel.font = [UIFont monospacedDigitSystemFontOfSize:26 weight:UIFontWeightMedium];
修改后,展示效果:
那么還有一個(gè)問(wèn)題,有時(shí)候用按鈕做了倒計(jì)時(shí),你會(huì)發(fā)現(xiàn)按鈕倒計(jì)時(shí)的時(shí)候也會(huì)發(fā)生閃爍的問(wèn)題,那么解決方法是:
修改你的button的屬性, 直接到
button
的屬性中把按鈕由默認(rèn)的system
改成custom
即可