Приветствует. Как-то подробное объяснение по моей проблеме, и что я уже сделал, а что не могу сделать.
Я хочу создать поведение, похожее на поведение клавиатуры iPhone. По сути, я хочу, чтобы представление появлялось, когда пользователь нажимает кнопку, и ПОКА пользователь нажимает эту кнопку.
Это я выполнил.
Когда пользователь отпускает кнопку, ПОКА его палец находится в области этой кнопки, я хочу вызвать действие «делать что-то».
Это я тоже смог сделать.
Поскольку все кнопки находятся рядом (как на клавиатуре), и я не хочу, чтобы пользователь выбирал другую кнопку, кроме той, которую он нажал, я уменьшил область нажатия кнопки с помощью -(BOOL)pointInside:( CGPoint)point withEvent:(UIEvent )event функция.
Когда пользователь нажимает кнопку, не поднимая палец и перетаскивая ее за пределы области кнопки, я хочу, чтобы срабатывало другое действие. Это первая проблема... Эта функция срабатывает только тогда, когда палец пользователя находится далеко от области кнопок, и на этот раз функция pointInside мне не подходит. Как я могу обнаружить, что палец пользователя «покинул» область кнопки в тот момент, когда она выходит за ее пределы?
Это, если ты не понял... была проблема 1.
Вторая проблема связана с перетаскиванием. Опять же, мне нужно ограничить область, как при выходе из перетаскивания. Но я предполагаю, что когда я решу одну из них, другая будет такой же. Проблема в том, что для того, чтобы вести себя как на клавиатуре, мне может потребоваться обнаружить, что пользователь начал прикосновение к другой кнопке, никогда не поднимал палец и перешел на другую кнопку. Я могу обнаружить вход и выход перетаскивания В ЭТОМ ПОРЯДКЕ, находясь на одной и той же кнопке. Я не могу обнаружить перетаскивание, когда пользователь впервые коснулся чего-либо, кроме кнопки, где я хочу обнаружить событие перетаскивания. В основном мне нужно обнаружить прикосновение к любой кнопке (а не где-либо еще в представлении), и пока пользователь меняет кнопки, не поднимая палец, я хочу обнаружить прикосновение к новой кнопке.
Этот гигантский абзац был проблемой №2.
Любая помощь, как вы могли догадаться, очень ценится.
Наилучшие пожелания. Большое спасибо!