段落懸掛從網(wǎng)上找了找沒(méi)有看到特此記錄。
可以通過(guò)富文本段落樣式NSMutableParagraphStyle的兩個(gè)屬性去處理 首行縮進(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;
}
主要是下面兩個(gè)行代碼控制文本懸掛間距,原理不多說(shuō)了就是字面意思。
[paragraphStyle setFirstLineHeadIndent:-10]; 最新使用中已經(jīng)無(wú)效果,請(qǐ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ù)呵,賢于群兒能幾何?0兒曹相鞭以為戲,翁怒鞭人血滿地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。\n2.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何??jī)翰芟啾抟詾閼?,翁怒鞭人血滿地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。\n3.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何??jī)翰芟啾抟詾閼颍膛奕搜獫M地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。";
NSString * str = @"1.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何??jī)翰芟啾抟詾閼?,翁怒鞭人血滿地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。\n2.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何??jī)翰芟啾抟詾閼?,翁怒鞭人血滿地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。\n3.群兒鞭笞學(xué)官府,翁憐癡兒傍笑侮。翁出坐曹鞭復(fù)呵,賢于群兒能幾何??jī)翰芟啾抟詾閼?,翁怒鞭人血滿地。等為戲劇誰(shuí)后先我笑謂翁兒更賢。";
label.attributedText = [self getAttributeStringWith:str];
[self.view addSubview:label];
效果圖
另附 關(guān)于文字展示更深層次講解
iOS文字展示原理 -源自O(shè)bjc中國(guó)