2016-04-15 17 views
0

Ich habe was sollte eine sehr einfache Sache zu tun sein. Ich arbeite an jemand anderem Code, und ich möchte eine UIButton vergrößern, weil es für Benutzer zu klein ist. Ich habe es größer im Storyboard gemacht, aber wenn ich die App starte, wird die zugehörige IBAction nur dann getroffen, wenn ich das ursprüngliche Rechteck berührt habe, bevor ich es geändert habe. Die Schaltfläche ist immer noch sichtbar größer, aber nur ein Teil davon erhält Berührungsereignisse. Weiß jemand, was sonst hier noch spielen könnte?UIButton nicht IBAction

Hinweis: Es gibt keine Ansichten oben auf dem neuen Bereich, den die Schaltfläche belegt, so dass ich glaube nicht, dass die Berührungen durch eine Ansicht auf der Oberseite aufgenommen werden.

+0

Eine andere Ansicht mit einer Geste? Auto resizing Ändern der Schaltfläche zur Laufzeit? Viele Optionen – Wain

Antwort

1

Ist die IBAction in Interface Builder/Storyboard angeschlossen, um "nach oben zu gehen"? Ich habe Fehler gemacht, wo ich es mit einer anderen Art von Veranstaltung verknüpfe, die Verhaltensweisen zeigt, wie Sie sie erleben.

2

Zu prüfen ist, ob der UIButton eine Vorgängeransicht (d. H. Eine Ansicht in seiner Superview-Kette) hat, die kleiner ist. Treffertests werden nur dann in der Ansichtshierarchie ausgeführt, wenn die Berührung in der Ansicht enthalten ist, sodass eine kleinere Übersicht die Berührungen außerhalb ihrer Grenzen stoppt, selbst wenn sich die Berührung innerhalb der Schaltfläche befindet.

0

Das Problem gefunden. Es gab eine Ansicht, die programmatisch oberhalb der Schaltfläche hinzugefügt wurde. Es ist origin.x wurde hart codiert, wo die Tastenbreite zu Ende verwenden.