Обнаружение касаний при анимации (перемещение) - PullRequest
0 голосов
/ 12 января 2012

У меня проблема с обнаружением касаний UIView или UIViewController, которые вызывают движение по экрану.Я пробовал UITapGesture, touchesbegan и UIbutton.Но я обнаружил, что проблема заключается в использовании блока анимации.Расположение вида установлено в его конечное местоположение и не может быть затронуто во время движения.(Вы можете коснуться места, в котором будет остановлен вид, и прикосновения прочитаны).Я пробовал UIView анимационные блоки для анимации.Я также пытался использовать CAKeyframeAnimation, но все они имеют одинаковый результат.

    [UIView animateWithDuration:10 delay:1 options:(UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction) animations:^{
    [testViewController.view setFrame:CGRectMake(900, 20, 100,  100)];

} completion:^(BOOL finished) {
    // Animate moving to another location
}];

Вот простой пример того, что я хочу.Я хочу изображение мяча, случайно перемещающегося по экрану.Я хочу знать, когда мяч коснулся.

1 Ответ

0 голосов
/ 23 августа 2012

Я случайно наткнулся на ответ в другом проекте.Проблема заключалась в том, что я пытался найти кадр зрения, поскольку он был анимированным.И кадр не меняется во время анимации.Но есть свойство слоев, которое помогает.

[view.layer presentationLayer]

Вы можете получить текущий кадр анимирующего вида из этого свойства слоя.После этого я могу нажать «test» с рамкой presentationLayers.

...