Wie passt man UILabel anklickbar an?
, Was ich will:
In einer iPhone-app, möchte ich zeigen, Informationen in einem tableView.
In jeder Zelle, der text ist wie: John kürzlich Musik hören abcdefg.mp3.
und, wenn nötig, den text zwei Zeilen.
In den text ein.mp3 sollte angeklickt werden, so dass, wenn der Benutzer berührt die abcdefg.mp3 Teil, wird eine weitere Seite aufgerufen werden. Wenn Benutzer berührt abcdefg.mp3, es werden auch einige Effekte, wie das berühren einer Schaltfläche.
, Was ich tun:
Berechne ich den Rahmen des Textes, und ich benutze einen UIButton für abcdefg.mp3.
Mein Problem:
Manchmal abcdefg.mp3 kann in mehrzeiligen, wie:
abc ist am Ende der ersten Zeile
defg.mp3 ist in der zweiten Zeile.
Was soll ich tun in diesem Fall?
Hab schon gesucht über: Erstellen Tippen-können "links" in der NSAttributedString von UILabel?
Aber ich denke, es ist nicht geeignet, da die anklickbaren text ist alles in einer Zeile in der Probe.
InformationsquelleAutor der Frage scorpiozj | 2011-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die am meisten einfache Weise ist, fügen Sie einfach eine gestik-Erkennung, um die aktuelle Ansicht (sei es ein UILabel oder einige benutzerdefinierte Ansicht Ihrer eigenen). Um für die gestik-Erkennung funktioniert, muss die Ansicht eingestellt werden userInteractionEnabled.
Hier ist ein Beispiel, vorausgesetzt, dass der label-Ansicht " (oder was auch immer es ist) wird aufgerufen, labelView:
In diesem Beispiel, eine Aktion Nachricht an
self
und wäre die Nachricht definiert als- (void)userTappedOnLink:(UIGestureRecognizer*)gestureRecognizer;
Dieser funktioniert genauso wie der Verkabelung, bis alle anderen UIControl Unterklasse, wie ein button.
Sonstige Hinweise: versuchen Sie nicht, fügen Sie die gleiche gestik-Erkennung auf mehrere Ansichten, es wird nicht funktionieren. Fügen Sie nicht mehr als eine Kopie der gestik-Erkennung, um mehrere Ansichten (nicht ersetzen Sie es einfach stapeln Sie Sie auf und verschwendet Speicher). Sollten Sie die gesture recognizer, wenn Sie zunächst das erstellen und konfigurieren Ihrer Sicht.
Weitere Informationen finden Sie in der Dokumentation für UIGestureRecognizer.
InformationsquelleAutor der Antwort Jason Coco
Swift Version:
InformationsquelleAutor der Antwort Esqarrouth
Swift 2.0 version:
InformationsquelleAutor der Antwort Bill Chan
Klingt ähnlich zu dem, was Sie erreicht in Twitteriffic mit Fancy UILabels. Im Grunde, Craig Hockenberry seine eigenen "data Detectors", so dass er links einfügen innerhalb der Etiketten-und multi-line-text. Siehe diese Frage: Gibt es eine Möglichkeit zum erstellen von benutzerdefinierten UIDataDetectorTypes?
InformationsquelleAutor der Antwort Reed Olsen
Könnte man auch einfach setzen Sie einen "unsichtbaren Button" oben, indem Sie eine benutzerdefinierte Schaltfläche ohne text und Bilder.
InformationsquelleAutor der Antwort Chris Conway
Ich denke, dass Sie verwenden können, textView und diable scrollen. Ich habe dasselbe für mein Projekt, wo ich zu Punkt-zu-website-Adressen. deaktivieren Sie einfach alles, wie gezeigt, in der Abbildung in "scroll-view' - Abschnitt im Inspektor-Fenster.
InformationsquelleAutor der Antwort Alix
Durch hinzufügen
UITapGestureRecognizer
auf das Etikett, umUIlabel
anklickbar.Bevor Sie das Etikett, um tapgesture, nicht vergessen zu aktivieren userinteraction für UIlabel
Hier ist der Beispielcode:
InformationsquelleAutor der Antwort ashok
Diese Lösung für die klickbare UILabel. Es ist nicht für wählen Sie link im text. Nur schöne Lösung meiner Meinung nach für anklickbare UILabel wie UIButton:
InformationsquelleAutor der Antwort Alex P