rtlabel 显示html,xcode - Display HTML text in UILabel iphone - Stack Overflow

本文介绍如何利用NSAttributedString在iOS中解析并显示HTML文本,无需第三方库。通过将HTML字符串包装成完整的HTML文档,并定义CSS样式来实现文本格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

You can do it without any third-party libraries by using attributed text. I believe it does accept HTML fragments, like the one you're getting, but you may want to wrap it in a complete HTML document so that you can specify CSS:

static NSString *html =

@""

"

"

"

" body { font: 16pt 'Gill Sans'; color: #1a004b; }"

" i { color: #822; }"

" "

" "

"

Here is some formatting!"

"";

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];

NSError *err = nil;

label.attributedText =

[[NSAttributedString alloc]

initWithData: [html dataUsingEncoding:NSUTF8StringEncoding]

options: @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }

documentAttributes: nil

error: &err];

if(err)

NSLog(@"Unable to parse label text: %@", err);

Not concise, but you can mop up the mess by adding a category to UILabel:

@implementation UILabel (Html)

- (void) setHtml: (NSString*) html

{

NSError *err = nil;

self.attributedText =

[[NSAttributedString alloc]

initWithData: [html dataUsingEncoding:NSUTF8StringEncoding]

options: @{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }

documentAttributes: nil

error: &err];

if(err)

NSLog(@"Unable to parse label text: %@", err);

}

@end

[someLabel setHtml:@"Be bold!"];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值