写HTML内容的NSString,并显示在iPhone(write html content to

2019-10-29 05:43发布

我有一个webveiw在那里我可以显示小HTML价值,但我有一个问题

如果是这样做

NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold > <strong> Information</strong> </span></h3>";


    HTMLData= [HTMLData stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


    [web loadHTMLString:HTMLData baseURL:nil];

那么它的工作呢罚款

但如果我的NSString有断线可以说

    NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold >
 <strong> Information</strong>
 </span></h3>";

然后我收到错误如何避免这个错误??? 我的错误是缺少终止字符内

Answer 1:

要在多行打破长NSString的,你需要把双引号在每行的结束和开始:

NSString *HTMLData =@"<h3><span style=font-family:Helvetica-Bold >"
    "<strong> Information</strong>"
    "</span></h3>";

编辑:
用的NSMutableString一个例子:

NSMutableString *HTMLData = [[NSMutableString alloc] initWithCapacity:100];
[HTMLData appendString:@"<h3><span style=font-family:Helvetica-Bold >"];
[HTMLData appendString:@"<strong> Information</strong>"];
[HTMLData appendString:@"</span></h3>"];
//more appends...

//do something with HTMLData here

[HTMLData release];

该initWithCapacity只是告诉多少个字符为初始分配空间(它不是一个限制)。

的NSMutableString也有appendFormat:方法,它的工作原理是stringWithFormat:



Answer 2:

这其中的一个解决方案是简单地写你的HTML作为一个字符串。 并显示字符串作为标签的属性串。

let htmlText = "<p>etc</p>"

if let htmlData = htmlText.dataUsingEncoding(NSUnicodeStringEncoding) {
    do {
        someLabel.attributedText = try NSAttributedString(data: htmlData,
            options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
            documentAttributes: nil)
    } catch let e as NSError {
        print("Couldn't translate \(htmlText): \(e.localizedDescription) ")
    }
}

参考: 如何显示上一个UILabel的HTML字符串



文章来源: write html content to NSString and display on iphone