這樣的需求對於Web來說非常的簡單,只需要利用HTML語法就可以解決,但是在iOS當中,UILabel預設只能顯示一種顏色,不能透過類似CSS的方式在一個UILabel中顯示不同的顏色。
若要做出這樣的效果,網路上大致可以分成三種解決方案:
1. 要幾種顏色就用幾個UILabel組起來。
2. 利用WebView來顯示,也就是用HTML來作。
3. 繼承UILabel,寫出一個有這個功能的Label。
而這種廣泛的需求,當然已經有人寫好了,最後我採用的是:TTTAttributedLabel?𠽤幾ㄍㄨ。
使用步驟:
1. 下載程式碼
2. 將TTTAttributedLabel.h 與 TTTAttributedLabel.m加到你的專案中。
3. 在你需要兩種以上顏色的UILabel換成TTTAttributedLabel
4. 使用他(假設我的TTTAttributedLabel叫做textinfo)
NSMutableAttributedString *tttString = [[NSMutableAttributedString alloc] initWithString:@"●●●●"];
[tttString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[[UIColor greenColor] CGColor] range:NSMakeRange(0,2)];
[tttString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[[UIColor redColor] CGColor] range:NSMakeRange(2,2)];
[textinfo setText:tttString];
上述程式碼就可產生●●●●這個效果。
註:NSMakeRange(0,2)意思是第0個開始,後面兩個。
效果圖:
2 則留言:
中文行间距有问题啊
不太懂"中文行間距"的意思
張貼留言