Кнопки UIB, создающие нативное поведение клавиатуры - PullRequest
1 голос
/ 10 июня 2010

Greets. Несколько подробное объяснение моей проблемы, и того, что я уже сделал, и что я не могу сделать.

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

Этого я достиг.

Когда пользователь отпускает кнопку, пока его палец находится в области этой кнопки, я хочу запустить действие "делать вещи".

Это я тоже смог сделать.

Поскольку все кнопки находятся рядом (как на клавиатуре), и я не хочу, чтобы пользователь выбирал другую кнопку, кроме той, которую он нажал, я уменьшил область нажатия кнопки, используя - (BOOL) pointInside: (CGPoint) point withEvent: (UIEvent) событие функция.

Когда пользователь нажимает кнопку, не поднимая палец и перетаскивая за пределы области кнопки, я хочу запустить другое действие. Это первая проблема ... Эта функция срабатывает только тогда, когда палец пользователя находится далеко от области кнопок, и на этот раз функция pointInside не является моим другом. Как я могу обнаружить, что пользовательский палец «покинул» область кнопки в тот момент, когда она выходит за пределы?

Это, если вы не поняли ... была проблема 1.

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

Этот гигантский абзац был проблемой № 2.

Любая помощь, как вы можете догадаться, высоко ценится.

С наилучшими пожеланиями. Большое спасибо!

1 Ответ

3 голосов
/ 11 июня 2010

решаемая.

Я использовал пользовательский класс UIButton. Тогда в

  • (void) touchesBegan: (NSSet *) касается события EventEvent: (UIEvent *)

  • (void) touchesMoved: (NSSet *) касается события EventEvent: (UIEvent *)

  • (void) touchesEnded: (NSSet *) затрагивает событиеEvent: (UIEvent *)

Я проверяю, произошло ли касание в этой пользовательской кнопке UIB. И если это произойдет, я буду действовать соответственно.

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