2010-12-31 2 views
0

Я являюсь определенным новичком для программирования iPhone. У меня два простых вопроса.UIButton - используемый полный экран, чтобы поймать штрихи

1) Я думал, что UIView будет реагировать на касания как UIButton, но кажется, что я должен подклассифицировать его. Я еще не совсем там. Поэтому мое грязное решение состояло в том, чтобы поместить UIButton поверх всего, сделать его полноэкранным и отключить любые изменения цвета, когда он нажат или отключен, и так далее. Это отлично работает, мое приложение теперь отвечает на любую часть экрана, и это не похоже на нажатие кнопки. Итак, первая часть моего вопроса такова: это плохо? Если да, то почему?

2) Ну, почти любая часть экрана отвечает. По какой-то причине, самое нижнее 5% или около того дисплея не реагирует на прикосновение, и я не знаю, почему. Кнопка растягивается на дно, и там нет ничего другого, чтобы перехватить прикосновение. Есть идеи?

Спасибо!

ответ

0

Чтобы захватить штрихи, вам просто нужно реализовать любой из следующих способов, которые вам требуются в контроллере просмотра. Использование UIButton для этого (в лучшем случае) несколько извращает и в конечном итоге ограничивает тип функциональности, которую вы можете предоставить.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

Для получения дополнительной информации об этих событиях см. Раздел UIResponder class reference.

Существует также хороший multi-touch tutorial over on iPhone SDK Articles, который подробно описывает каждый из вышеперечисленных методов и как вы можете обрабатывать данные UIEvent, которые предоставляются.

С точки зрения вашего второго пункта - я лично заметил небольшую «мертвую зону» в нижней части дисплея (кнопка «внизу») - I думаю, это просто характер но я должен признаться, что я никогда в ней не разбирался.

+0

5% дисплея в портретном режиме имеет размер строки состояния. Теперь я знаю, что он говорит нижнюю часть своего телефона, но возможно, что он держит телефон в неправильной ориентации со своим приложением, которое не поддерживает ориентации. Просто мысль. У меня нет этого мертвого пятна, на котором вы говорите на любом из моих устройств. – jer

+0

Это не только по телефону, мертвое пятно UIButton также находится в симуляторе. Я уверен, что это побочный эффект использования UIButton таким образом, чтобы он не использовался. Если я растягиваю кнопку ниже видимой области дисплея, тогда весь экран снова осязает. Неприятный способ сделать это, конечно. – Glib

Смежные вопросы