Kann ich die Farbe ändern von auto erfasst links auf UITextView?
Hatte ich eine UITextView
erkennt Telefonnummern und links, aber dies übertrifft meine fontColor
und ändern Sie es zu blueColor
. Gibt es eine Möglichkeit zu formatieren, die Farbe von auto erfasst-links, oder sollte ich versuchen, eine manuelle version dieser Funktion?
Würde auch gerne wissen ob oder wie das möglich ist.
Überprüfen Sie diese Antwort mit einem private-api-Untersicht UIWebDocumentView: stackoverflow.com/a/11745983/111277
Überprüfen Sie diese Antwort mit einem private-api-Untersicht UIWebDocumentView: stackoverflow.com/a/11745983/111277
InformationsquelleAutor Leandro Alves | 2009-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter iOS 7 können Sie die
tintColor
desUITextView
. Es wirkt sich auf die link-Farbe sowie die cursor-Linie und der ausgewählte text Farbe.iOS 7 auch eine neue Eigenschaft zu
UITextView
genanntlinkTextAttributes
würde erscheinen, damit Sie die volle Kontrolle über die link-Stil.Ich habe eine weitere Erklärung in dieser Antwort: stackoverflow.com/a/21027340/1202222
Auf iOS 10.3, ich war nicht in der Lage, zu überschreiben
NSFontAttributeName
mitlinkTextAttributes
. Musste ich manuell festlegen, dass die Schrift in der gleichen Größenordnung wie meinNSLinkAttributeName
InformationsquelleAutor stonemonk
Statt mit einer UITextView, habe ich ein UIWebView und aktiviert die "auto-detect links". Ändern Sie die link-Farbe, die nur einen regelmäßigen CSS für den tag.
Benutzte ich so etwas wie dieses:
Ich weiß... aber ich weiß nicht, Abhilfe weniger hackish. Apple sollte wirklich darüber nachdenken, diese kleinen details.
nun, ich denke, es ist weniger hackish als Alexanders Antwort. Immer noch verrückt, dass es keine einfache Eigenschaft für eine so grundlegende Funktionalität.
Frage über das textview nicht webview!
es ist Arbeit für mich...Danke @LeandroAlves.
InformationsquelleAutor Leandro Alves
Können Sie
UIAppearance
Protokoll die änderungen gelten für alle text-Ansichten:Swift 4.x:
Swift 3.x:
Swift 2.x:
Objective-C:
Aussehen für
UITextView
ist nicht dokumentiert, aber funktioniert gut.Beachten
UIAppearance
Hinweise:In anderen Worten:
Der Aufruf dieses Codes in
init()
oderinit(coder:)
Methoden wird ändern UI-Objekt Aussehen, aber ruft inloadView()
oderviewDidLoad()
der viewController nicht.Wenn Sie möchten, legen Sie das Erscheinungsbild der gesamten Anwendung,
application(_:didFinishLaunchingWithOptions:)
ist eine gute Stelle für den Aufruf solcher code.Dies ist die beste und up-to-date die Antwort.
Ich haben einen UITextView und schreiben Sie obigen code in die viewdidload. aber wenn ich Schreibe E-Mails im text-Feld und geben Sie Raum, Farbe ist nicht zu ändern.
InformationsquelleAutor Grubas
Können Sie Ändern Sie die Hyperlink-Farbe in einem TextView durch die folgenden:
In der Nib-Datei, können Sie gehen, um das Eigenschaften-Fenster und ändern Sie die Tönung, die je Farbe, die Sie wollen.
oder Sie können auch programmgesteuert mithilfe der folgenden code
InformationsquelleAutor Manju
Das problem mit UITextView
linkTextAttributes
ist, dass es gilt für alle automatisch erkannten verbindungen. Was ist, wenn Sie verschiedene links mit unterschiedlichen Parametern?Es stellt sich heraus, dass es ein trick: konfigurieren der verbindungen, die als Teil der text-Ansicht zugeschrieben text und legen Sie die
linkTextAttributes
zu einem leeren Wörterbuch.Hier ist ein Beispiel in der iOS-11 /Swift-4:
Mein String ist "lernen Wollen iOS?" Besuchen Sie die beste Quelle für Kostenlose iOS-tutorials! Swift-Prüfung Hallo google.com Zugeschrieben 9826012345 String testing in Los..." und die Standard-link-Attribut ist erforderlich für die web-Anbindung und Handy-Nummer. Aber ich möchte einen link für string-Teil "lernen Wollen iOS?" in verschiedenen Farben mit link..Also sich selbst.tv.linkTextAttributes = [:] funktioniert nur für benutzerdefinierte Verknüpfung.
Abstimmung für
the important thing
!!InformationsquelleAutor matt
Die Farbe kann getan werden, in der storyboard-auch
InformationsquelleAutor Ryan Heitner
Fand ich in der Tat einen anderen Weg ohne mithilfe einer webview aber im Hinterkopf behalten, dass diese verwendet private API und kann abgelehnt werden, im appstore:
EDIT: Meine app hat von apple genehmigt, obwohl die private Verwendung der api!
Zuerst deklarieren Sie eine Kategorie auf UITextView mit den Methoden
Sind Sie nur Folgendes tun:
Nun schreiben Sie eine Methode für bunte links:
Tut es-set das style-Attribut mit einer bestimmten Farbe, die auf alle Arten von links.
UITextViews gerendert werden Webiview wie über divs, so dass Sie könnte sogar noch weiter gehen und die Farbe jeder link-Typ separat:
Den
x-apple-data-detectors-type="link"
ist der Indikator für die genaue Art der VerknüpfungBEARBEITEN
Auf
iOS7
dieser nicht mehr funktioniert. In iOS7 könnten Sie leicht ändern Sie das link-Farbe UITextViews durch die Einstellung des "Farbton". Sollten Sie nicht nennenmehr, erhalten Sie eine Ausnahme. Stattdessen tun Sie Folgendes wenn Sie möchten, unterstützt iOS 7 und unten:
Sie haben zu erklären, eine Kategorie auf UITextView mit den Methoden, siehe mein edit
InformationsquelleAutor Alexander
EDIT:
Tun Sie es nicht mit
UITextView
verwendenUIWebView
statt.Müssen Sie ein stylesheet für das. Definieren Sie eine Klasse gibt mit der Farbe Kombination, die Sie brauchen-
benutzen Sie nun die Klasse 'headercopy' Sie in die html-Seite wie dieser-
dadurch wird die Telefonnummer in der Farbe, die Sie brauchen, mit click-Funktionalität.
UIWebView
.mit web-Ansichten ist ein schlechter Programmier-Stil für native apps.
InformationsquelleAutor Vaibhav Saran
Dieser code setzt die Farbe einer Telefonnummer auf einem I-Phone aber annulliert die automatische call-Verbindung.
InformationsquelleAutor Mark Overton