粗體下同時(shí)設(shè)置UIButton的title和image會(huì)造成兩者重疊

哇擦擦,居然有人喜歡用iPhone的粗體模式,設(shè)置方式為“設(shè)置-通用-輔助功能-Bold Text”,看起來(lái)好丑,不過(guò)還是有人會(huì)用到這個(gè)模式的
然而,UIButton在這個(gè)模式下同時(shí)設(shè)置title和image會(huì)重疊啊,不知道是不是哪里的bug,當(dāng)然你的button設(shè)置的比這兩個(gè)東西加起來(lái)寬好多還能正常顯示,但是有時(shí)候就不會(huì)這么好了,例如你使用了UIButton的sizeToFit。。顯示效果是這個(gè)樣子的:

Snip20161029_2.png

某些情況下你有不能直接給button的image設(shè)置一個(gè)很大的imageInsets,因?yàn)楹枚嗳硕际钦DJ较碌陌?,你一改正常模式下看起?lái)就怪怪的了,這時(shí)候就得用代碼來(lái)搞了啊,可以針對(duì)于粗體模式下的button修改一個(gè)比較大的imageInsets 來(lái)讓它看起來(lái)正常一些,記得當(dāng)時(shí)QA提這個(gè)bug的時(shí)候很是頭大,不知道從哪里下手啊,然后當(dāng)時(shí)貌似是通過(guò)打斷點(diǎn)來(lái)看這兩種模式下字體有什么不同,然后再去針對(duì)性的搞得,代碼大概是這個(gè)樣子

//粗體模式下的字體是這個(gè):.SFUIText-Semibold,正常的忘記是啥了,不過(guò)判斷個(gè)這個(gè)就可以找到了,然后再設(shè)置btn的imageEdgeInsets就得以正常顯示了
if ([[UIFont systemFontOfSize:12].fontName isEqualToString:@".SFUIText-Semibold"]) {
        self.btn_diamond.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 10);
}
Snip20161029_3.png

調(diào)整完之后大概就是醬嬸的,insets具體調(diào)多大就自己去試了,可能跟圖標(biāo)大小什么的也有關(guān)系,但是正常字體下的顯示就是沒(méi)有任何問(wèn)題啊,下面是正常字體下并沒(méi)有做任何調(diào)整的button

Snip20161029_4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,148評(píng)論 4 61
  • 關(guān)于UIButton大家都很熟悉,系統(tǒng)默認(rèn)的樣式,是image在左,title在右的,如下圖所示: 但是,很多情況...
    流火緋瞳閱讀 25,863評(píng)論 16 63
  • 夜半衾冷,忽忽再夢(mèng)回鄉(xiāng)。 時(shí)已黃昏,老父聞?dòng)嘬囻R,喜不自勝,乃洗手作羹湯,皆余幼時(shí)所好也。交杯換盞,酒酣耳熱之際,...
    青衫如鐵斜陽(yáng)暮閱讀 422評(píng)論 0 1
  • 文/兔小月 2011年4月29日,一場(chǎng)世紀(jì)婚禮在英國(guó)倫敦的威斯敏斯特教堂隆重舉行?;槎Y當(dāng)天,英國(guó)王室一共邀請(qǐng)了世界...
    檢小月成長(zhǎng)記閱讀 2,808評(píng)論 14 28

友情鏈接更多精彩內(nèi)容