HTML-Format in UITextView

8

Ich bin ziemlich neu in der iOS-Entwicklung und arbeite gerade an einer App, die irgendeine Art von JSON-Daten erhält. Aber einige Backend-Experten dachten, dass es für den Benutzer besser wäre, wenn sie die Informationen einfach aus Word herauskopieren und in das Informationssystem einfügen würden. Ich sitze also hier und versuche einen anklickbaren Link in einem UITableView zu erstellen.

Ich parse die Daten aus dem Web und erhalte einen String mit folgendem Format:

%Vor%

Ich habe schon ein UILabel probiert, aber nach einigen Recherchen benutze ich jetzt das oft vorgeschlagene UITextView. Im Attribute Inspector habe ich es als Attributen Text festgelegt und die Link-Erkennung aktiviert. Jetzt wird der Text rot angezeigt und kann angeklickt werden.

Das Problem ist für mich jetzt, dass die HTML-Tags und der richtige (deutsche) Zeichensatz immer noch fehlen und ich keine Ahnung habe, wie ich ihn richtig darstellen soll.

Die angezeigte Zeichenfolge wird auf diese Weise analysiert:

%Vor%

Wenn ich die Textansicht mit attrStr?.string bearbeite, wird das Format korrekt angezeigt, aber der Link ist auch nicht mehr vorhanden.

Irgendwelche Vorschläge, wie man den angezeigten String richtig formatiert?

Vielen Dank im Voraus AR4G4

    
a2hur 09.02.2015, 16:53
quelle

8 Antworten

25

Das Problem dort ist, dass Sie die Zeichencodierungsoptionen von NSUnicodeStringEncoding in NSUTF8StringEncoding ändern müssen, um Ihren HTML-Code richtig zu laden. Ich denke, dass Sie eine schreibgeschützte berechnete Eigenschaft der Zeichenfolgenerweiterung erstellen sollten, um Ihren HTML-Code in attributierte Zeichenfolge zu konvertieren:

Xcode 8.3.1 • Schnell 3.1

%Vor% %Vor%

in Ihrem Fall

%Vor%     
Leo Dabus 09.02.2015, 18:19
quelle
2

Überprüfen Sie die Attribute Ihrer UITextView in IB. Damit die Links funktionieren, müssen Sie Selectable aktiviert haben.

    
fred02138 09.02.2015 18:02
quelle
1

Ich würde empfehlen, HTML in UIWebView anzuzeigen. Es ist robuster als die Verwendung von UITextView . Weitere Informationen finden Sie unter HTML-Text in uitextview anzeigen .

    
tng 09.02.2015 17:52
quelle
1

Ich habe Code für Swift 4 verwendet:

%Vor%     
Mannam Brahmam 01.12.2017 10:17
quelle
0

Nachdem Sie Ihre attributierte Zeichenfolge erstellt haben, würden Sie die attributedText -Eigenschaft von UITextView auf die NSAttributedString selbst und nicht auf die string -Eigenschaft dieser attributierten Zeichenfolge festlegen.

    
Rob 09.02.2015 17:40
quelle
0

Ihre Versionen sind ziemlich nah am Anfang. Wie Leonardo Savio Dabus sagte, sollten Sie wahrscheinlich NSUTF * StringEncoding ausprobieren. Das Folgende erzeugt Ihre erwartete Ausgabe für mich. Wie Sie sagten, möchten Sie es vielleicht zu einer Erweiterung von string hinzufügen, wenn Sie dies viel tun.

%Vor%     
Jeremy Pope 09.02.2015 20:55
quelle
0

Eine andere Art, wie ich das gemacht habe:

%Vor%

Endergebnis - & gt; htmlLessString ist

%Vor%     
Nebojsa Nadj 06.04.2016 22:31
quelle
0

Ich hatte eine App mit einem UITextView, wo ich html-formatierten Text aus dem Browser einfügen und dann als String (mit HTML-Formatierung) in die Datenbank speichern und dann ein weiteres Mal aus der Datenbank abrufen konnte und zeigen Sie es mit dem gleichen Format wie es zuerst von der Website kopiert wurde. Ich habe das geschafft, indem ich diese beiden Erweiterungen gemacht habe:

%Vor%     
Claudia Fitero 12.12.2016 14:33
quelle