Wie kann ich ein "hyperlink" mit Swift?
Ich versuche zu machen eigene Stücke von text UILabel
s anklickbar. Was ich Suche ist allgemein bekannt als hyperlink in die web-Entwicklung.
<a href="//example.com">Link 1</a>
<a href="//example.com/example">Link 2</a>
<a href="//example.com/other_example">Link 3</a>
Jeder a
tag wird seine eigenen UILabel
, und es wäre im Idealfall öffnen Sie Safari, um die angegebene href
wenn der text zwischen den tags geklickt wird.
Habe ich gefunden, eine Vielzahl von Ressourcen, wie das zu tun diese Art der Sache in Objective-C, aber Sie scheinen alle unnötig kompliziert und nicht gut übersetzen zu Swift (Sie passen eine Objective-C-Organisations-Struktur, die funktioniert nicht gut in Swift und geht gegen die empfohlene Art der Verwendung der Sprache).
Hier sind ein paar:
- Wie fügen Sie einen hyperlink in der iPhone-app?
- Wie man einen anklickbaren link in einem NSTextField und Kakao
- Text als Hyperlink in Objective-C
Wenn ich hatte einen 3 UILabel
s,
Element 1
Element 2
Punkt 3
was wäre dann die beste "Swift-y" Weg, um jedes Element zu öffnen, um eine andere URL in Safari?
Konnte ich erstellen Sie separate Schaltflächen für jedes, aber die UILabel
s sind programmgesteuert gefüllt, so dass ich dachte, dass der text auf Tippen reagiert, könnte eine bessere option sein.
- Mehrere URLs in einem UILabel ist ein bisschen schwierig, in beiden Sprachen. Sie müssen erkennen, die Tippen Sie in der label-rect und dann versuchen, und arbeiten Sie heraus, welche Linie berührt wurde. Es wäre viel einfacher, mit mehreren UILabels als alles, was Sie brauchen ist eine einfache
touchUpInside
handler - Okay: ich werde versuchen, dass. Würden Sie mir schreiben, eine Antwort mit diesem Szenario? Werde ich ändern, meine Frage zu reflektieren, unterschiedliche Struktur.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Ein Ansatz wäre etwas wie das folgende.
Die Annahmen sind:
UILabel
.UILabel
tag
festgelegt wurde, den entsprechenden index im arraylabelTapped:
alstouchUpInside
handler für die Etiketten.UILabel
s und das ist der Grund, warum ich nach einer Lösung gefragt, die Sie verwenden. Könnte ich mit einem button, aber warum ändern Sie es, wenn der einzige Unterschied ist das hinzufügen einer touchup-handler zum label?UILabel
s sind. Ich zögerte zu tun, so ursprünglich, weil meine Absicht war so etwas wie eine Liste, aber die Knöpfe waren ähnlich genug, um die Etiketten zu erarbeiten.Swift 3
Ich erstellte eine LinkUILabel Klasse in github:
https://github.com/jorgecsan/LinkUILabel
Mit diesem müssen Sie nur fügen Sie die url inspectable wie der zeigt das Bild:
oder weisen Sie die url-variable programmatisch:
Wenn Sie möchten, zu implementieren, indem Ihr selbst auch fand ich, dass die Lösung!:)
mit:
Hoffe, es hilft!:)