iOS之label行间距的缩进

开发过程中 遇到显示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];


2.然后我们把label的text转化成一个可变字符串

     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一起使用

4.看一看设置完之后的效果。


 还请大家多多指教。



发布了23 篇原创文章 · 获赞 1 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章