Как предотвратить нажатие кнопки UIB на «нижнем» виде при нажатии на то же место на изображении «сверху» - PullRequest
1 голос
/ 18 февраля 2009

У меня UIButton на главном экране, когда нажимается кнопка, я добавляю UIImageView на весь экран, заполняя весь экран (это добавляется поверх кнопки).

Что происходит, если щелкнуть изображение UIImageView (в том месте, где находится кнопка UIB), то запускает щелчок кнопки UIBmage. Однако, поскольку кнопка невидима для пользователя и закрыта изображением, это нежелательное поведение.

У кого-нибудь случалось подобное? Любая помощь приветствуется!

Ответы [ 3 ]

2 голосов
/ 18 февраля 2009

Обычно для UIImageViews свойству userInteractionEnabled должно быть присвоено значение NO, поэтому они не должны реагировать на события касания и не должны передавать их по цепочке представлений (эффективно блокируя касания от выполнения каких-либо действий до представлений, скрытых изображениями). , Я предполагаю, что вы не сбрасываете это свойство в YES, поэтому кажется, что прикосновения не обрабатываются вашим изображением.

Это может произойти, если суперпредставление, в которое вы добавляете UIImageView, не покрывает весь экран. UIImageView будет выходить за границы суперпредставления и, по-видимому, будет рисоваться по всему экрану, но будет реагировать на прикосновения только в области своего суперпредставления.

0 голосов
/ 18 февраля 2009

Я на самом деле заставил его работать, установив кадр с помощью:

[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

Вместо:

[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

Кажется, проблема заключалась в том, что вместо границ использовалась рамка приложения.

0 голосов
/ 18 февраля 2009

Это может быть скорее ошибкой, чем исправлением, но вы можете добавить проверку состояния UIImageView в событие UIButton Click и просто выйти из события, если UIImageView в настоящее время заполняет экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...