HTML-Format in UITextView
ich bin ganz neu bei der iOS-Entwicklung-und jetzt arbeiten Sie auf eine app, die erhalten eine Art von JSON-Daten. Aber einige Backend-Experten dachten, dass es besser wäre, für den Benutzer, wenn Sie kopieren Sie einfach die Informationen direkt aus Word und fügen Sie ihn in das Informationssystem. So Sitze ich hier, versuche zu machen, einen anklickbaren Link in einem UITableView.
Ich parse die Daten aus der Web und bekommen Sie einen String mit folgendem format:
Für mehr Informationen klicken sie <a href="http://www.samplelink.com/subpage.php?id=8">here</a>.
Versuchte ich bereits ein UILabel, aber nach einigen Recherchen jetzt benutze ich das oft vorgeschlagen, UITextView. In der Attributierten Inspektor, habe ich es als Text Zugeschrieben und aktiviert die Link-Erkennung. Nun wird der text rot dargestellt und ist klickbar.
Das Problem jetzt für mich ist, dass die HTML-Tags und die korrekte (Deutsche) Zeichensatz fehlt noch und ich habe keine Ahnung, wie, um ihn in der richtigen Weise.
Der abgebildete string wird geparst, auf diese Weise:
func showHTMLString(unformattedString: String) -> NSAttributedString{
var attrStr = NSAttributedString(
data: tmpString.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil,
error: nil)
return attrStr!
}
Wenn ich füllen die Textview mit attrStr?.string
ist das Format dargestellt, in der richtigen Weise, aber der link ist auch Weg.
Irgendwelche Vorschläge, wie formatieren Sie die angezeigte Zeichenfolge in der richtigen Weise?
Vielen Dank im Voraus
AR4G4
Das ist genau das, was ich will
InformationsquelleAutor a2hur | 2015-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dort das problem ist, dass Sie eine änderung der Zeichenkodierung Optionen aus NSUnicodeStringEncoding zu NSUTF8StringEncoding Ihren laden Ihres html-Codes den richtigen Weg. Ich denke, Sie sollten erstellen Sie einen string-Erweiterung nur-lese-berechnete Eigenschaft zu konvertieren Sie Ihre html-code zugeschrieben string:
Xcode 8.3.1 • Swift 3.1
in Ihrem Fall
danke @Leonardo Savio Dabus, mit Ihrem Hinweis, alles ist in Ordnung, jetzt! nur zu benötigen, weisen Sie die Zelle, aber der Link und die Anzeige wird nun genau angezeigt, wie ich es wollte.
Sie sind herzlich willkommen
Warum haben Sie nicht akzeptiert, die Antwort? Die Frage ist, wie, HTML-format zur Anzeige in UITextView.
sry, ich bin neu hier. dachte, ich kann akzeptieren, mehr als eine Antwort.
InformationsquelleAutor Leo Dabus
Überprüfen Sie die Attribute der UITextView im IB. Damit die links funktionieren, müssen Sie
Selectable
überprüft.InformationsquelleAutor fred02138
Ich würde empfehlen, die Anzeige von HTML in ein
UIWebView
. Es ist robuster als die Verwendung einesUITextView
. Sehen Die Anzeige von html-text in uitextview für weitere Informationen.Es ist robuster in dem Sinne, dass es eine echte HTML-renderer. Zum Beispiel, es kann mit CSS-Stylesheets, kann es die Ausführung von JavaScript, etc. Ich bin mir nicht sicher, welche Art von HTML, die Sie erwarten, zu erbringen - für die einfachen Dinge, die UITextView arbeiten kann.
hey tng, die webview scheinen die bessere Lösung (lädt schneller), aber ich bin stucked, dass die link öffnet in der kleinen webview. sah sich hier: link aber wo muss ich die shouldStartLoadWithRequest? Gemacht jetzt eine Klasse CustomUIWebViewController: UIWebView, UIWebViewDelegate' und setzen Sie die Funktion gibt, aber die links, die noch offen in der Webansicht. (Meine Rep ist zu niedrig, um einen Kommentar auf dem anderen Thread) danke
Umsetzung der
UIWebViewDelegate
und dann GriffshouldStartLoadRequest
- siehe developer.apple.com/library/ios/documentation/UIKit/Reference/...:Wenn Sie es umsetzen, können Sie wählen, um weiter zu öffnen den link im aktuellen Fenster oder navigieren Sie zu einer anderen Ansicht, oder Sie können auch öffnen Sie den link in Safari. Es ist bis zu Ihnen, wie Sie damit umgehen wollen, die links.
InformationsquelleAutor tng
Ich verwendet code für den Swift 4:
InformationsquelleAutor Mannam Brahmam
Nachdem erstellt Ihr zugeschrieben string, Sie würden dann legen Sie die
attributedText
Eigenschaft desUITextView
werden dieNSAttributedString
selbst, nicht dasstring
Eigenschaft zugeschrieben string.InformationsquelleAutor Rob
Ihre Versionen ist ziemlich in der Nähe, um mit zu beginnen. Als Leonardo Savio Dabus erklärt, Sie sollten wahrscheinlich versuchen NSUTF*StringEncoding. Die folgende produziert Ihre voraussichtliche Ausgabe für mich. Wie er sagte, möchten Sie vielleicht hinzufügen, dass es zu einer Verlängerung der saite, wenn Sie dies tun, eine Menge.
InformationsquelleAutor Jeremy Pope
Anderen Weise, die ich verwendet, um dies zu tun :
Ergebnis -> htmlLessString ist
InformationsquelleAutor Nebojsa Nadj
Hatte ich eine app, die hatte einen UITextView, wo ich sein wollte in der Lage, kopieren Sie html-formatierten text aus dem browser und speichern es dann als string(mit html Formatierung) in die Datenbank, und dann ein weiteres mal, um es aus der Datenbank und zeigen Sie es mit dem gleichen format wie war es vorher kopiert von der website.
Ich schaffte das, indem Sie diese zwei Erweiterungen:
InformationsquelleAutor Claudia Fitero