开发过程中 遇到显示label的N多行,可是有时候label的整体显示符合不了我们的美的标准 现在让我们看看label本身显示多行的效果。
NSMutableParagraphStyle 是段落模式 专门负责行间距的大小 现在一起来看看代码吧
1.首先定义一个label。
UILabel *lblLogin = [[UILabel alloc]initWithFrame:CGRectMake(37.5,30,300,500)];
lblLogin.text = @"黄昏雨落一池秋,晚来风向万古愁。不厌浮生唯是梦,缘求半世但无俦。一颦一笑一伤悲,一生痴迷一世醉。一磋一叹一轮回,一寸相思一寸灰。 功名万里赋予谁,去年秋江水, 醉卧不识今夜愁,哀筝惹泪落,谁劝我千杯? 往事难追战马肥,胡笳送君归, 修道心事无人猜,青云羡慕鸟,尊前图一醉";
lblLogin.textColor = [UIColor cyanColor];
lblLogin.numberOfLines = 0;
[self.view addSubview:lblLogin];
NSMutableAttributedString *text = [[NSMutableAttributedString alloc]initWithString:lblLogin.text];
3.初始化一个一个段落模式的对象 NSMutableParagraphStyle *mutstyle = [[NSMutableParagraphStyle alloc]init];
mutstyle.lineSpacing = 10;//使其行间距是10
mutstyle.alignment = NSTextAlignmentLeft;//文字居左
//定义一个range 需要设置的范围
NSRange range = NSMakeRange(0, lblLogin.text.length);
[text addAttribute:NSParagraphStyleAttributeName value:mutstyle range:range];
lblLogin.attributedText= text;
下面是 NSMutableParagraphStyle的一些属性
// paragraphStyle.headIndent = 5; // 非首行文本缩进
// paragraphStyle.tailIndent = -20; // 文本缩进(右端)
// paragraphStyle.firstLineHeadIndent = 20; // 首行文本缩进
// paragraphStyle.alignment = NSTextAlignmentRight; // 文本对齐方式
// paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; // 折行方式
// paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight; // 文本写入方式
// paragraphStyle.lineHeightMultiple = 3.0; // 文本行间距是默认行间距的多少倍
// paragraphStyle.maximumLineHeight = 50; // 文本最大行距
// paragraphStyle.minimumLineHeight = 50; // 文本最小行距
// paragraphStyle.allowsDefaultTighteningForTruncation = YES; // 目前还不知道有什么作用
// paragraphStyle.hyphenationFactor = 1.0; // 设置每行的最后单词是否截断,在0.0-1.0之间,默认为0.0,越接近1.0单词被截断的可能性越大,
// paragraphStyle.paragraphSpacing = 10; // 段落后面的间距
// paragraphStyle.paragraphSpacingBefore = 20; //设置段与段之间的距离
*/
// dict[NSParagraphStyleAttributeName] = paragraphStyle; // NSParagraphStyle,文本段落样式
// dict[NSStrikethroughStyleAttributeName] = @(NSUnderlinePatternSolid | NSUnderlineStyleSingle); // NSNumber,加删除线,默认不加删除线,其它的话是加不同风格的删除线
// dict[NSStrikethroughColorAttributeName] = [UIColor yellowColor]; // UIColor,删除线颜色,默认等于文本前景颜色,前提是需要加删除线,和NSStrikethroughStyleAttributeName有关
// dict[NSUnderlineStyleAttributeName] = @(NSUnderlineStyleDouble); // NSNumber,加下划线,默认NSUnderlineStyleNone不加下划线,其它的话是加不同的下划线
// dict[NSUnderlineColorAttributeName] = [UIColor yellowColor]; // UIColor,下划线颜色,默认等于文本前景颜色,前提是需要加下划线,和NSUnderlineStyleAttributeName有关
// dict[NSStrokeColorAttributeName] = [UIColor yellowColor]; // UIColor,默认等于文本前景颜色,需要和NSStrokeWidthAttributeName一起使用
// dict[NSStrokeWidthAttributeName] = @5; // NSNumber,使文本有一种中空的效果(有立体效果)数字越大,文本填充的越满,数字越小,文本颜色越淡,不需要和NSStrokeColorAttributeName一起使用
还请大家多多指教。