一,理解
对于以前,我们用label进行添加文字的时候,只是在 label的本身上添加,从来没有考虑过其他的方式,今天呢,由于我看了别人的一片技术博客,有感所以就记录了下来,希望能够帮助到那些有需要的人
不带段落分析的
代码如下:
NSString *str = @"也许我们的心里藏有一个海洋,流出来的却是两行清泪,可我并不感到孤单,我只是简单地喜欢书写凄凉。曾经我们敷衍的情绪,在别人记忆的曲线里渐行渐远渐无言。难道曾经的悸动,只是岁月留给我一个人的错觉,我有点不相信自己的眼睛。我没有哭泣,只是学会了思念而已。";
//创建富文本
NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:str];
//设置文本的颜色
[attributeStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 6)];
//设置文本的大小
[attributeStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:26] range:NSMakeRange(0, 6)];
//设置文本的背景颜色
[attributeStr addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(0, 6)];
//设置文本的下划线
[attributeStr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, 6)];
//设置字符间的间距
[attributeStr addAttribute:NSKernAttributeName value:@(5) range:NSMakeRange(0, str.length - 1)];
//创建label
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width + 5, 40)];
//设置label中的字体
label.attributedText = attributeStr;
//设置label中的字体允许换行
label.numberOfLines = 0;
//设置label的高度自适应
[label sizeToFit];
//设置label的背景颜色
label.backgroundColor = [UIColor greenColor];
//将label添加到视图上
[self.view addSubview:label];
运行结果:
下面是带段落分析的
运行代码:
NSString *str = @"也许我们的心里藏有一个海洋,流出来的却是两行清泪,可我并不感到孤单,我只是简单地喜欢书写凄凉。\n曾经我们敷衍的情绪,在别人记忆的曲线里渐行渐远渐无言。\n难道曾经的悸动,只是岁月留给我一个人的错觉,我有点不相信自己的眼睛。\n我没有哭泣,只是学会了思念而已。";
//创建富文本
NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc]initWithString:str];
//创建段落的样式
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];
//设置段落的行间距
paragraph.lineSpacing = 10;
//设置段落之间的间距
paragraph.paragraphSpacing = 15;
//设置首行缩紧的字数
paragraph.firstLineHeadIndent = 30;
//设置全部缩进
paragraph.headIndent = 30;
//设置对齐方式
paragraph.alignment = NSTextAlignmentLeft;
//添加段落设置
[attributeStr addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, str.length)];
//创建label
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width + 5, 40)];
//设置label中的字体
label.attributedText = attributeStr;
//设置label中的字体允许换行
label.numberOfLines = 0;
//设置label的高度自适应
[label sizeToFit];
//设置label的背景颜色
label.backgroundColor = [UIColor greenColor];
//将label添加到视图上
[self.view addSubview:label];
运行结果: