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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章