button的AttributedTitle

實現(xiàn)按鈕上面標題的換行、顏色區(qū)別、字體大小區(qū)別

//普通狀態(tài)

NSString *first = btnTitle;

NSString *second = [NSString stringWithFormat:@"贈送:%@元", detailTitle];

NSString *btnString = [NSString stringWithFormat:@"%@\n%@", first, second];

NSMutableAttributedString *btnAttriTitle = [[NSMutableAttributedString alloc] initWithString:btnString];

NSDictionary *dictNor = @{

NSForegroundColorAttributeName : BZChongZhiZengSongColor,

NSFontAttributeName : font1

};

NSRange rangeNor = NSMakeRange(first.length+1, second.length);

[btnAttriTitle? addAttributes:dictNor range:rangeNor];

button.titleLabel.numberOfLines = 0;

button.titleLabel.textAlignment = NSTextAlignmentCenter;

[button setAttributedTitle:btnAttriTitle forState:UIControlStateNormal];

//高亮、選中狀態(tài)

NSString *btnString2 = [NSString stringWithFormat:@"%@\n%@", first, second];

NSMutableAttributedString *btnAttriTitle2 = [[NSMutableAttributedString alloc] initWithString:btnString2];

NSDictionary *dictSel1 = @{

NSForegroundColorAttributeName : BZredColor,

NSFontAttributeName : font2

};

NSDictionary *dictSel2 = @{

NSForegroundColorAttributeName : BZredColor,

NSFontAttributeName : font1

};

NSRange rangeSel1 = NSMakeRange(0, first.length);

NSRange rangeSel2 = NSMakeRange(first.length + 1, second.length);

[btnAttriTitle2 addAttributes:dictSel1 range:rangeSel1];

[btnAttriTitle2 addAttributes:dictSel2 range:rangeSel2];

[button setAttributedTitle:btnAttriTitle2 forState:UIControlStateHighlighted];

[button setAttributedTitle:btnAttriTitle2 forState:UIControlStateSelected];

效果圖


-----常見問題---

button設置選中狀態(tài)后,再點擊沒有高亮狀態(tài)(起初設置高亮、選中狀態(tài)一樣)。

解決辦法:設置UIControlStateHighlighted | UIControlStateSelected狀態(tài)

```

[button setAttributedTitle:btnAttriTitle2 forState:UIControlStateHighlighted | UIControlStateSelected];

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容