最近碰到了一個關(guān)于用一個label顯示換行與文字多中顏色顯示的問題师骗,本人第一想到的就是富文本NSAttributedString攘残,試過之后發(fā)現(xiàn)效果還不錯.
NSAttributedString叫作富文本,是一種帶有屬性的字符串睁壁,可對字符串進(jìn)行多種修改背苦,可改變文字的font互捌、color、下劃線行剂。秕噪。。
self.label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 0, 0)];
NSString *str = @"竹外桃花三兩枝厚宰,\n春江水暖鴨先知腌巾。\n萎蒿滿地蘆芽短,\n正是河豚欲上時固阁。";
NSRange rang = [str rangeOfString:@"春江水暖鴨先知壤躲。"];
NSRange rang1 = [str rangeOfString:@"萎蒿滿地蘆芽短,"];
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:str];
[attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30.0f] range:NSMakeRange(0, 7)];
//添加顏色
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:rang];
[attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor cyanColor] range:rang1];
//添加下劃線
[attrStr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(9, 7)];
self.label.backgroundColor = [UIColor whiteColor];
self.label.numberOfLines = 0;
self.label.attributedText = attrStr;
[self.label sizeToFit];
//添加陰影
self.label.shadowColor = [UIColor redColor];
self.label.shadowOffset = CGSizeMake(1.5, 1.5);
顯示效果如下: