[FIXED] Konvertieren Sie HTML in NSAttributedString in iOS

Ausgabe

Ich verwende eine Instanz von UIWebView, um Text zu verarbeiten und korrekt einzufärben. Das Ergebnis wird als HTML angezeigt, aber anstatt es in UIWebViewanzuzeigen, möchte ich es Core Textmit einer NSAttributedString.

Ich bin in der Lage, die zu erstellen und zu zeichnen NSAttributedString, aber ich bin mir nicht sicher, wie ich den HTML-Code in die attributierte Zeichenfolge konvertieren und zuordnen kann.

Ich verstehe, dass es unter Mac OS X NSAttributedStringeine initWithHTML:Methode gibt, aber dies war nur eine Mac-Ergänzung und ist nicht für iOS verfügbar.

Ich weiß auch, dass es eine ähnliche Frage dazu gibt, aber es gab keine Antworten. Ich würde es noch einmal versuchen und sehen, ob jemand eine Möglichkeit dazu geschaffen hat und wenn ja, ob er sie teilen könnte.

Lösung

In iOS 7 hat UIKit eine Methode hinzugefügt , die eine Verwendung von HTML initWithData:options:documentAttributes:error:initialisieren kann , z. B.:NSAttributedString

[[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] 
                                 options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                                           NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} 
                      documentAttributes:nil error:nil];

In Swift:

let htmlData = NSString(string: details).data(using: String.Encoding.unicode.rawValue)
let options = [NSAttributedString.DocumentReadingOptionKey.documentType:
        NSAttributedString.DocumentType.html]
let attributedString = try? NSMutableAttributedString(data: htmlData ?? Data(),
                                                          options: options,
                                                          documentAttributes: nil)


Beantwortet von –
Bild


Antwort geprüft von –
Marilyn (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like