Использование UIControlEventTouchDragEnter для запуска метода кнопки ... но не работает?

Я пытаюсь настроить кнопку, используя UIControlEventTouchDragEnter как способ вызвать кнопкус метод. В частности, у меня есть кнопка, и я хочу кнопку "s метод, который должен срабатывать, если пользователь нажимает пальцем за пределы кнопки и перетаскивает палец в пределы кнопки.

В соответствии сяблокоэто событие, UIControlEventTouchDragEnter, является: Событием, когда палец перетаскивается в границы элемента управления.

Тем не менее, я могуполучить кнопку для запуска. Вот мой код:

- (IBAction)touchDragEnter:(UIButton *)sender {
    _samlpe.image = [UIImage imageNamed:@"alternate_pic.png"];
}

Таким образом, когда сработает touchInto для этой кнопки, метод изменит текущее изображение _sample на это альтернативное изображение. Если я просто использую touchUpInside, изображение меняется на альтернативное при нажатии кнопки.

Кто-нибудь знает, почему это не так?не работает, или есть обходные пути? Спасибо!

Ответы на вопрос(1)

Решение Вопроса

touchDragEnter срабатывает только при первом нажатии кнопки, перетаскивании пальца за пределы границ кнопки и перетаскивании снова в границы кнопки.

Вы можете использоватьtouchesMoved метод в вашем классе контроллера представления и обнаружение кнопки, введенной на основе местоположения касания:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch * touch = [[event allTouches] anyObject];
    CGPoint touchLocation = [touch locationInView:touch.view];
    NSLog(@"%f - %f", touchLocation.x, touchLocation.y);
}
 Valent Richie21 мая 2013 г., 05:46
@ jake9115: Я бы посоветовал вам открыть новый вопрос о звуке в комплекте с кодом для звука и оператором if :)
 jake911521 мая 2013 г., 05:53
Нет проблем, спасибо еще раз!
 jake911521 мая 2013 г., 05:42
Это фантастика, спасибо за отличный ответ. Я также поместил в ваш метод оператор if, чтобы определить, происходит ли касание в определенной области экрана. После касаний, найденных в этой области, я хочу, чтобы 1-секундный аудиоклип воспроизводился. Однако, если вы проведете пальцем по экрану, он подтвердит оператор if, и звук будет возобновляться после каждого движения пикселя. Есть ли способ запустить звук и дать ему закончить, не запуская снова?

Ваш ответ на вопрос