開發過程中 遇到顯示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一起使用
還請大家多多指教。