UIButton на UIButton - PullRequest
       1

UIButton на UIButton

2 голосов
/ 31 августа 2011

Вот вам вопрос:

У меня есть UIButton, который мы назовем bottomButton. У меня есть еще UIButton, который мы назовем topButton. То, что я хочу сделать, это поместить topButton поверх bottomButton так, чтобы при нажатии topButton выполнялось его действие. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю topButton, выполняется действие bottomButton.

Итак, я хочу знать, можно ли разместить UIButton на другом UIButton, чтобы при касании только верхний UIButton регистрировал отвод. Знающие

Любой вклад приветствуется!

Ответы [ 5 ]

3 голосов
/ 31 августа 2011

Да, это возможно. Есть три вещи, которые нужно проверить:

1) На самом деле topButton расположен над bottomButton в стеке представлений?
[UIView bringSubviewToFront:] может помочь здесь.
2) Является ли topButton достаточно большим, чтобы зарегистрировать метчик?
Попробуйте сделать topButton больше 44x44 и посмотрите, поможет ли это.
3) Убедитесь, что topButton включен.

EDIT

Я только что увидел ваш комментарий о добавлении topButton как подпредставление bottomButton, и это, вероятно, будет частью проблемы. Вы можете попробовать добавить bottomButton и topButton в новый UIView, а затем добавить этот новый UIView, где вы ранее использовали bottomButton.

2 голосов
/ 31 августа 2011

Если верхняя кнопка является подпредставлением нижней, она не будет передавать сенсорные события, потому что нижняя кнопка hitTest: withEvent: вызывается первой, и она возвращает YES.

Вы можете попробовать переопределить hitTest: withEvent: для нижней кнопки, чтобы он вызывал hitTest для своих подпредставлений (обычно у него нет UIControls в своих подпредставлениях) и вместо этого возвращал бы это подпредставление, если у него есть попадание.

2 голосов
/ 31 августа 2011

Ах, теперь я вижу, прочитав ваши комментарии.Поскольку вы добавляете кнопку TO к другой кнопке, вам нужно, чтобы суперпредставление перехватывало событие касания.

Прочтите этот пост: Как сделать так, чтобы кнопки перехвата суперпредставления касались событий?

0 голосов
/ 31 августа 2011

Зачем вам добавлять кнопку к кнопке?

Попробуйте добавить их к тому же родителю, но поместите topButton над bottomButton.

0 голосов
/ 31 августа 2011

Я не уверен насчет этого, но вы пытались добавить их в представление в разных порядках? Это имеет значение? Проверьте это и посмотрите, что получится!

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