Ich habe festgestellt, dass ich UILabel viel schneller als UITextField erstellen kann, und ich plane, UILabel die meiste Zeit für meine Datenanzeige-App zu verwenden.
Um es kurz zu machen, ich möchte den Benutzer auf ein UILabel tippen lassen und meinen Rückruf darauf reagieren lassen. Ist das möglich?
Vielen Dank.
userInteractionEnabled = true
Antworten:
Sie können
UITapGestureRecognizer
Ihrem UILabel eine Instanz hinzufügen.Beispielsweise:
quelle
Wenn Sie Storyboards verwenden, können Sie diesen gesamten Vorgang im Storyboard ohne zusätzlichen Code ausführen. Fügen Sie dem Storyboard eine Beschriftung hinzu und fügen Sie der Beschriftung eine Tippgeste hinzu. Stellen Sie im Bereich Dienstprogramme sicher, dass "Benutzerinteraktion aktiviert" für die Bezeichnung aktiviert ist. Drücken Sie in der Tap-Geste (unten im View-Controller im Storyboard) bei gedrückter Strg-Taste und ziehen Sie sie in Ihre ViewController.h-Datei und erstellen Sie eine Aktion. Implementieren Sie dann die Aktion in der Datei ViewController.m.
quelle
Swift 3.0
Initialisieren Sie die Geste für
tempLabel
Aktionsempfänger
Swift 4.0
Initialisieren Sie die Geste für
tempLabel
Aktionsempfänger
quelle
Swift 2.0:
Ich füge eine nsmutable-Zeichenfolge als Text von sampleLabel hinzu, um die Benutzerinteraktion zu ermöglichen, eine Tippgeste hinzuzufügen und eine Methode auszulösen.
quelle
Sie können stattdessen einen UIButton verwenden und den Text auf das gewünschte Maß einstellen. Die Schaltfläche muss nicht wie eine Schaltfläche aussehen, wenn Sie nicht möchten
quelle
So fügen Sie eine Tippengeste auf UILable hinzu
und die Auswahlmethode zu bewerten
Hinweis: Fügen Sie UIGestureRecognizerDelegate in die .h-Datei ein
quelle
Schnelle Version:
var tapGesture : UITapGestureRecognizer = UITapGestureRecognizer()
Fügen Sie dann Folgendes
viewDidLoad()
hinzu:quelle
Wenn Sie
UILabel
mehrzeiligen Text in Ihrer Schaltfläche verwenden möchten, erstellen Sie einen Text mit mehrzeiligem Text und fügen Sie ihn als Unteransicht zu Ihrer Schaltfläche hinzu.für zB:
quelle
Swift 3 von Alvin George
quelle
Die Swift-Version sieht folgendermaßen aus:
quelle
Ich persönlich bevorzuge die Methode, eine Erweiterung für UILabel zu schreiben. Das benutze ich.
Sie würden es dann von jeder UILabel-Instanz aus wie folgt verwenden:
Dies kann möglicherweise zu Speicherlecks führen, die ich glaube, aber ich habe noch nicht festgelegt, wie sie am besten behoben werden können.
quelle