日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS UIlabel文字排版(改变字间距行间距)分类

發布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS UIlabel文字排版(改变字间距行间距)分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在iOS開發中經常會用到UIlabel來展示一些文字性的內容,但是默認的文字排版會覺得有些擠,為了更美觀也更易于閱讀我們可以通過某些方法將UIlabel的行間距和字間距按照需要調節。

比如一個Label的默認間距效果是這樣:


然后用一個封裝起來的Category來調整這部分文字的行間

[UILabel changeLineSpaceForLabel:cell.describeLabel WithSpace:5.0];

調整后的效果是這樣的:


其中5.0就是我自定義的文字間距。

這是一個UILabel 的Category,他的內部實現是這樣的:

UILabel+ChangeLineSpaceAndWordSpace.h

#import <UIKit/UIKit.h>@interface UILabel (ChangeLineSpaceAndWordSpace)/*** 改變行間距*/ + (void)changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space;/*** 改變字間距*/ + (void)changeWordSpaceForLabel:(UILabel *)label WithSpace:(float)space;/*** 改變行間距和字間距*/ + (void)changeSpaceForLabel:(UILabel *)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace;@end

UILabel+ChangeLineSpaceAndWordSpace.m

#import "UILabel+ChangeLineSpaceAndWordSpace.h"@implementation UILabel (ChangeLineSpaceAndWordSpace)+ (void)changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space {NSString *labelText = label.text;NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText];NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];[paragraphStyle setLineSpacing:space];[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];label.attributedText = attributedString;[label sizeToFit];}+ (void)changeWordSpaceForLabel:(UILabel *)label WithSpace:(float)space {NSString *labelText = label.text;NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(space)}];NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];label.attributedText = attributedString;[label sizeToFit];}+ (void)changeSpaceForLabel:(UILabel *)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace {NSString *labelText = label.text;NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(wordSpace)}];NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];[paragraphStyle setLineSpacing:lineSpace];[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];label.attributedText = attributedString;[label sizeToFit];}@end

根據內部實現也可以自己靈活運用 不一定用Category的方法。



文/Elephan_z(簡書作者)
原文鏈接:http://www.jianshu.com/p/b7a2314e780a
著作權歸作者所有,轉載請聯系作者獲得授權,并標注“簡書作者”。

總結

以上是生活随笔為你收集整理的iOS UIlabel文字排版(改变字间距行间距)分类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。