Получение или установка области попадания UIButtonTypeInfoLight
Таким образом, кажется, что область перестановки UIButton с типом UIButtonTypeInfoLight намного больше, чем его рамка. Из-за этого я не могу поставить кнопку рядом с ней, при попытке нажать на нее вместо этого будет нажата кнопка информации.
_infoButton.frame = CGRectMake(0, 0, 40, height);
_searchButton.frame = CGRectMake(CGRectGetMaxX(_infoButton.frame), 0, 40, height);
У кого-нибудь есть какие-нибудь намеки на то, как получить область нажатия кнопки?
Изменить: наличие кнопки рядом с кнопкой информации это не мой основной вопрос (просто иллюстрация того, почему это может быть важно). Мой вопрос о том, чтобы узнать "область попадания" для кнопки этих типов.
1 ответ
Я не уверен в поиске конкретного прямоугольника области попадания из кода, но есть способ, которым вы можете специально установить область, которая будет накладываться. Вы можете подкласс вашего UIButton
и переопределить UIView
"s hitTest:withEvent:
установить площадь. Вот пример, который показывает расширение области попадания, но я почти уверен, что вы можете использовать его и для уменьшения области: Увеличенная область попадания для UIButton
Я полагаю, что вы можете использовать метод проб и ошибок с помощью этого метода, чтобы коснуться областей и выяснить, что находится или не находится в границах области попадания. Я знаю, что это не идеально, но это то, что я нашел.