最近遇到了一個問題, 就是在做UILabel顯示文字的時候, 會出現(xiàn)label文字左右參差不齊的現(xiàn)象 如圖1所示.
下面我們就是用系統(tǒng)原生方法的富文本就可以輕松解決
NSString *str = @"????而“散文”一詞大概出現(xiàn)在北宋太平興國(976年十二月—984年十一月)時期汽久。《辭盒舐瘢》認為[1] :中國六????朝以來远剩,為區(qū)別于韻文和駢文六敬,把凡不押韻、不重排偶的散體文章懈词,包括經(jīng)傳史書在內(nèi)童叠,概稱“????散文”慎菲。后又泛??指詩歌[2] 以外的所有文學體裁嫁蛇。??";
// 設(shè)置段落為左右對齊 NSTextAlignmentJustified
NSMutableParagraphStyle *par = [[NSMutableParagraphStyle alloc]init];
par.alignment = NSTextAlignmentJustified;
NSDictionary *dic = @{NSParagraphStyleAttributeName : par, NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)};
// 配置富文本
NSAttributedString *mstr = [[NSAttributedString alloc] initWithString:str attributes:dic];
UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, [UIScreen mainScreen].bounds.size.width, 0)];
[self.view addSubview:label2];
// 自適應(yīng)高度
label2.attributedText = mstr;
label2.numberOfLines = 0;
label2.backgroundColor = [UIColor redColor];
[label2 sizeToFit];
其中關(guān)鍵性的是兩句代碼:
1.這句代碼的意思是設(shè)置文字左右對齊
par.alignment = NSTextAlignmentJustified;
2.經(jīng)過測試發(fā)現(xiàn) 配置富文本只帶段落屬性 左右對齊并不生效 所以我在后面配置了 下劃線后左右對齊就生效了
NSDictionary *dic = @{NSParagraphStyleAttributeName : par, NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)};
下面我們來預(yù)覽一下效果