Ok, ich habe einen UILabel
im Interface Builder erstellten Standardtext "Tap to begin" angezeigt.
Wenn der Benutzer auf tippt UILabel
, soll eine IBAction-Methode ausgelöst werden,
-(IBAction)next;
die den Text auf dem Etikett aktualisiert, um etwas Neues zu sagen.
Es wäre sehr praktisch, wenn ich auf diese Weise einfach eine Verbindung von meiner Methode auf mein Etikett ziehen und dann wie mit einer Schaltfläche die Option "Nachbessern" auswählen könnte. aber leider keine Zigarre.
Wie auch immer, ich denke meine Frage ist, muss ich eine Unterklasse bilden UILabel
, damit dies funktioniert? Oder gibt es eine Möglichkeit, eine Schaltfläche über das Etikett zu ziehen, sie jedoch zu 0% undurchsichtig zu machen? Oder gibt es eine einfachere Lösung, die mir fehlt?
quelle
UILabel erbt von UIView, das von UIResponder erbt. Alle UIresponder-Objekte können Berührungsereignisse verarbeiten. Implementieren Sie also in Ihrer Klassendatei, die über Ihre Ansicht Bescheid weiß (die das UIlabel enthält):
Legen Sie im Interface Builder den Tag-Wert des UILabels fest. Wenn in Ihrer touchBegan-Methode Berührungen auftreten, überprüfen Sie den Tag-Wert der Ansicht, zu der das Tag gehört:
Sie verbinden Ihren Code in Ihrer Klassendatei mit dem UILabel-Objekt im Interface Builder, indem Sie Ihre UILabel-Instanzvariable mit dem IBOutlet-Präfix deklarieren:
Dann können Sie sie im Interface Builder verbinden.
quelle
Sie können einen UIButton verwenden, ihn transparent machen, dh einen benutzerdefinierten Typ ohne Bild, und ein UILabel hinzufügen (zentriert). Verdrahten Sie dann die normalen Tastenereignisse.
quelle
Swift 3
Sie haben ein IBOutlet
In dem Sie die Benutzerinteraktion aktivieren und einen Gestenerkenner hinzufügen
Und zum Schluss den Wasserhahn anfassen
quelle