iOS UIlabel怎么加载html字符串 富文本的用法
2016-08-26 17:49
351 查看
要加载html字符串,用人说,直接用webView啊!但是,有时候我们只需要显示2行文字,如此少的内容却要在复杂的UI排版中加入一个占用资源较多的webview,得不偿失。这里要说的是,我们其实可以用label即可加载html字符的,用富文本转一下html字符串即可。
//str是要显示的字符串
NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];
[attrString addAttributes:@{NSBaselineOffsetAttributeName: @(5),//设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏,可使UILabel文本垂直居中
NSFontAttributeName:[UIFont systemFontOfSize:14]} range:NSMakeRange(0, attrString.length)];
self.descLabel.attributedText = attrString;
//计算html字符串高度
NSMutableAttributedString *htmlString =[[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute:[NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:NULL error:nil];
[htmlString addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} range:NSMakeRange(0, htmlString.length)];
CGSize textSize = [htmlString boundingRectWithSize:(CGSize){ScreenWidth - 20, CGFLOAT_MAX} options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
return textSize.height ;
//str是要显示的字符串
NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];
[attrString addAttributes:@{NSBaselineOffsetAttributeName: @(5),//设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏,可使UILabel文本垂直居中
NSFontAttributeName:[UIFont systemFontOfSize:14]} range:NSMakeRange(0, attrString.length)];
self.descLabel.attributedText = attrString;
//计算html字符串高度
NSMutableAttributedString *htmlString =[[NSMutableAttributedString alloc] initWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute:[NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:NULL error:nil];
[htmlString addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} range:NSMakeRange(0, htmlString.length)];
CGSize textSize = [htmlString boundingRectWithSize:(CGSize){ScreenWidth - 20, CGFLOAT_MAX} options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
return textSize.height ;
相关文章推荐
- PHP函数:怎么去掉字符串和文本中的html标签&标识-字符串处理
- 在Flash动态文本框中加载HTML格式文本
- 怎么给html和jsp创建文本编译器
- 【HTML】教你怎么加快google-analytics的加载速度,ga.js的加载速度
- 解决webview闪屏,加载html富文本,设置字体view自动恢复
- js,html(包括其中图片等非文本元素)加载顺序
- PHP - Manual手册 - Function Reference函数参考 - Text Processing文本处理 - Strings字符串 - String Functions字符串函数 - strip_tags字符串中去除HTML和PHP标记
- iOS UILabel显示HTML文本
- 在JS的脚本里,怎么把一个html字符串转成的DOM对象.从而能使用返回的DOM对象来访问某一个节点?
- jQuery怎么加载一个html页面到我指定的div里面
- 在Flash中利用Actionscript在动态文本框中加载HTML格式的文本
- 请问我如何在一个webBrowser控件中加载一个 html格式的字符串 - _NET技术 - C#
- js去掉html标签和去掉字符串文本的所有的空格
- js去掉html标签和去掉字符串文本的所有的空格
- mailto scheme 高级用法, 显示带html样式的邮件文本 推荐
- 怎么将html标签当做文本显示?
- Android UI设计 文本输入框EditText用法(输入密码 隐藏显示输入的字符串)
- WebView加载Html格式字符串
- android 的webview怎么展示后台传来没标签的html字符串
- 使用UITextView加载html文本