1 如圖1.1,需求是左邊圖片右邊文字,這里為了方便使用button,button可以設置image和title,代碼如下
[_freightBtn setImage:[UIImage imageNamed:@"home_freight"] forState:UIControlStateNormal];
[_freightBtn setTitle:kStr(@"Home_freeFreight") forState:UIControlStateNormal];
[_freightBtn setTitleColor:kGrayColor forState:UIControlStateNormal];
_freightBtn.titleLabel.font = kAppFont(kAppAdaptWidth(12));
正常情況下的顯示如圖1.1
圖1.1
but。。。有些人喜歡將手機的系統字體設置為粗體,步驟:setting->General->Accessibility->Bold Text(設置->通用->輔助功能->粗體文字),如圖1.2
1.2 設置成粗體
然后,就會出現下面的情況,如圖1.3
圖1.3 設置成粗體出現的問題
解決方法是用代碼設置imageEdgeInsets,
_repertoryBtn.imageEdgeInsets = UIEdgeInsetsMake(0.0,-(_repertoryBtn.imageView.width/2), 0.0, 0.0);
這樣設置之后顯示就ok了,這里的偏移量根據UI設計自己調試