iOS 富文本首行懸掛

段落懸掛從網(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中國

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容