круглая кнопка изображения VS квадратный контроллер - PullRequest
3 голосов
/ 02 ноября 2011

У меня есть пользовательская кнопка с круглым изображением.

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

Кто-нибудь знает, как обойти эту ошибку?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Один из способов справиться с этим - уменьшить размер кнопки. Это все еще будет прямоугольник (или квадрат), хотя. Более сложным способом было бы реализовать - (UIView *) hitTest: (CGPoint) pt withEvent: (UIEvent *) event и обработать, какая область кнопки была нажата, и если она не находится в определенном вами круге, игнорировать это событие касания.

Но если вы спросите меня, пусть будет так, как есть. В контакте люди редко бывают такими точными (по сравнению с щелчком мыши) Таким образом, кнопка прямоугольника предоставляет пользователю больше места для нажатия на кнопку, даже если он находится немного ниже отметки.

0 голосов
/ 02 ноября 2011

Вы не можете решить это с настройками UIControl.Вы должны будете сделать пользовательское обнаружение попадания и определить, находится ли изображение под краном.Вы можете сделать это с помощью UITapGestureRecognizer.

...