段落懸掛從網(wǎng)上找了找沒有看到特此記錄。
可以通過富文本段落樣式NSMutableParagraphStyle
的兩個屬性去處理 首行縮進(jìn)firstLineHeadIndent
除首行外段落縮進(jìn)headIndent
不廢話了 看代碼
- (NSAttributedString *)getAttributeStringWith:(NSString *)str{
NSDictionary * attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:12]};
NSMutableAttributedString * mAttr = [[NSMutableAttributedString alloc] initWithString:str attributes:attributes];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
[paragraphStyle setLineSpacing:10];//行間距
// [paragraphStyle setFirstLineHeadIndent:-10];
[paragraphStyle setHeadIndent:10];
[mAttr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, str.length)];
return mAttr;
}
主要是下面兩個行代碼控制文本懸掛間距,原理不多說了就是字面意思。
[paragraphStyle setFirstLineHeadIndent:-10];
最新使用中已經(jīng)無效果,請自行嘗試
[paragraphStyle setHeadIndent:10];
使用方法
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(10, 64, CGRectGetWidth(self.view.frame)-20, CGRectGetHeight(self.view.frame))];
label.numberOfLines = 0;
NSString * str = @"1.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何?兒曹相鞭以為戲,翁怒鞭人血滿地。等為戲劇誰后先我笑謂翁兒更賢。\n2.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何?兒曹相鞭以為戲,翁怒鞭人血滿地。等為戲劇誰后先我笑謂翁兒更賢。\n3.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何?兒曹相鞭以為戲,翁怒鞭人血滿地。等為戲劇誰后先我笑謂翁兒更賢。";
label.attributedText = [self getAttributeStringWith:str];
[self.view addSubview:label];
效果圖
另附 關(guān)于文字展示更深層次講解
iOS文字展示原理 -源自O(shè)bjc中國