Лучший способ расширить популярный регион UIControl? - PullRequest
1 голос
/ 10 февраля 2012

Если вы заметили в приложении iPod / Music, когда вы нажимаете ползунок прогресса, вы можете нажать довольно далеко от маленькой ручки, и она все равно будет регистрироваться, как если бы вы нажали ее. То же самое касается кнопок на панели инструментов UINavigationController, обратите внимание на то, как (если поблизости ничего нет) вы можете нажимать довольно далеко от, например. кнопка возврата, и она все еще будет регистрироваться.

Как мне лучше всего добиться этого для моего собственного контроля? На самом деле я делаю это на слайдере UIProgress.

1 Ответ

2 голосов
/ 11 февраля 2012

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

Например, для кнопкиВы можете сделать саму кнопку размером 50x50 пикселей, но сделать кнопку графической размером 20x20 пикселей, чтобы она выглядела довольно маленькой, но имела большую область нажатия.

Та же техника может работать для вашего слайдера.Сделайте фрейм UISlider довольно высоким (скажем, 50 пикселей), но сделайте так, чтобы графика слайдера была меньше.Если это не очень хорошо работает, потому что элемент управления растягивает их до нужного размера, просто сделайте графику самого слайдера прозрачной и нарисуйте более тонкий слайдер в виде изображения за реальным элементом управления слайдером.

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