2012-01-11 4 views
0

Проблема, с которой я сталкиваюсь, обнаруживает касания на 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 
}]; 

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

ответ

0

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

[view.layer presentationLayer] 

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