今天要做一個圖文混排的頁面窍仰,在自定義的很多cell
里面有一個需要動態(tài)高度的加載HTML文本的cell
汉规,做完之后在這里記錄一下
- 初始化
UILabel
_contentLabel = [[UILabel alloc] init];
_contentLabel.numberOfLines = 0;
NSString *str = [NSString stringWithFormat:@"本教材采用以結(jié)構(gòu)為綱,寓結(jié)構(gòu)驹吮、功能于情景之中的編寫原則针史,力求為學(xué)生以后的學(xué)習(xí)打下比較堅實(shí)的語言基礎(chǔ)。在內(nèi)容的編寫與選取方面碟狞,突出實(shí)用性啄枕,力求場景的真實(shí)自然。本教材內(nèi)容以學(xué)生的學(xué)習(xí)和生活為主篷就,選取了校園及其他與學(xué)生日常生活密切相關(guān)的場景射亏,以幫助學(xué)生盡快適應(yīng)學(xué)校及日常生活。課文全部采用對話體竭业,以滿足學(xué)生用漢語進(jìn)行交際的基本需求智润。<img style=\"width: %f; height: auto;\" src = \"https://gimg2.baidu.com/image_search/src=http%%3A%%2F%%2Fimg3.doubanio.com%%2Fview%%2Fgroup_topic%%2Fl%%2Fpublic%%2Fp458058160.jpg&refer=http%%3A%%2F%%2Fimg3.doubanio.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1656643727&t=e23faa2706d62506d4198fe10a727be2\"/>我們希望通過本書的學(xué)習(xí),學(xué)習(xí)者可以打下良好而堅實(shí)的基礎(chǔ)未辆,積蓄充足的能量和后勁窟绷,實(shí)現(xiàn)在漢語的天空中自由飛翔的目標(biāo)。",MainScreenWidth-30];
_contentLabel.attributedText = [self getHtmlStringWithString:str];
[self.contentView addSubview:_contentLabel];
- 為了方便簡單封裝了一下
- (NSMutableAttributedString *)getHtmlStringWithString:(NSString *)string {
NSDictionary *options = @{NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute : @(NSUTF8StringEncoding)};
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
// 設(shè)置段落格式
NSMutableParagraphStyle *para = [[NSMutableParagraphStyle alloc] init];
para.lineSpacing = 8;
[attStr addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(0, attStr.length)];
// 設(shè)置文本的Font
[attStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, attStr.length)];
[attStr addAttribute:NSForegroundColorAttributeName value:ColorFromRGB(103, 103, 103, 1.0) range:NSMakeRange(0, attStr.length)];
return attStr;
}
加載HTML文本的地方調(diào)用該方法拿到我們需要的富文本賦值給
label
就可以了