在專案開發中,我們經常會遇到在這樣一種情形:在乙個uilabel 使用不同的顏色或不同的字型來體現字串,在ios 6 以後我們可以很輕鬆的實現這一點,官方的api 為我們提供了uilabel類的attributedtext, 使用不同顏色和不同字型的字串,我們可以使用nsattributedtext 和 nsmutableattributedtext 類來實現。
現實**:
.h 檔案
1
@inte***ce viewcontroller : uiviewcontroller
2
@property (nonatomic, strong) iboutlet uilabel *attrlabel;
3
- (ibaction)next:(id)sender;
4
@end
.m檔案 在viewdidload方法中新增以下**:
1
self.title = @
"for ios 6 & later"
;
2
nsmutableattributedstring *str = [[nsmutableattributedstring alloc] initwithstring:@
"using nsattributed string"
];
3
[str addattribute:nsforegroundcolorattributename value:[uicolor bluecolor] range:nsmakerange(0,5)];
4
[str addattribute:nsforegroundcolorattributename value:[uicolor redcolor] range:nsmakerange(6,12)];
5
[str addattribute:nsforegroundcolorattributename value:[uicolor greencolor] range:nsmakerange(19,6)];
6
[str addattribute:nsfontattributename value:[uifont fontwithname:@
"arial-bolditalicmt"
size:30.0] range:nsmakerange(0, 5)];
7
[str addattribute:nsfontattributename value:[uifont fontwithname:@
"helveticaneue-bold"
size:30.0] range:nsmakerange(6, 12)];
8
[str addattribute:nsfontattributename value:[uifont fontwithname:@
"courier-boldoblique"
size:30.0] range:nsmakerange(19, 6)];
9
attrlabel.attributedtext = str;
效果圖:
如果想在ios6.0以前版本實現這個效果,需要使用到乙個第三方庫tttattributedlabel,同時還有匯入coretext.frame框架.
UILable不同版中的lineBreakMode
label.linebreakmode nslinebreakbyclipping 剪下與文字寬度相同的內容長度,後半部分被刪除。label.linebreakmode nslinebreakbytruncatinghead 前面部分文字以 方式省略,顯示尾部文字內容。label.linebreak...
UILable不同版中的lineBreakMode
label.linebreakmode nslinebreakbyclipping 剪下與文字寬度相同的內容長度,後半部分被刪除。label.linebreakmode nslinebreakbytruncatinghead 前面部分文字以 方式省略,顯示尾部文字內容。label.linebreak...
UILable不同版中的lineBreakMode
label.linebreakmode nslinebreakbyclipping 剪下與文字寬度相同的內容長度,後半部分被刪除。label.linebreakmode nslinebreakbytruncatinghead 前面部分文字以 方式省略,顯示尾部文字內容。label.linebreak...