2016-04-15 1 views
0

J'ai ce qui devrait être une chose très simple à faire. Je travaille sur le code de quelqu'un d'autre, et je veux agrandir un UIButton parce que c'est trop petit pour les utilisateurs. Je l'ai fait plus grand dans le story-board, mais quand je cours l'application, le IBAction associé seulement est frappé en touchant où le rectangle original était avant que je l'ai changé. Le bouton est toujours visiblement plus grand, mais seulement une partie de celui-ci reçoit des événements tactiles. Est-ce que quelqu'un sait quoi d'autre pourrait être en jeu ici?UIButton ne reçoit pas IBAction

Remarque: il n'y a pas de vues sur la nouvelle zone occupée par le bouton, donc je ne pense pas que les touches soient prises en vue par dessus.

+0

Une autre vue avec un geste? Redimensionnement automatique en changeant le bouton à l'exécution? De nombreuses options – Wain

Répondre

1

L'interface IBAction est-elle connectée pour "retoucher à l'intérieur" dans Interface Builder/Storyboard? J'ai fait des erreurs où je raccroche avec un type différent d'événement, qui présente des comportements comme vous éprouvez.

2

Un élément à vérifier est de savoir si l'UIButton a une vue ancêtre (c'est-à-dire une vue dans sa chaîne de vue d'ensemble) qui a la plus petite taille. Les tests de réussite ne font que passer dans la hiérarchie des vues si le toucher est contenu dans la vue, de sorte qu'une vue plus petite arrêtera les touches en dehors de ses limites, même si le toucher est à l'intérieur du bouton.

0

a trouvé le problème. Une vue a été ajoutée par programmation au-dessus du bouton. C'est origin.x a été codé en dur à l'endroit où la largeur des boutons se termine.