Попытка обнаружить столкновение между анимацией UIImageViews - PullRequest
0 голосов
/ 09 июля 2010

Я очень новичок в какао.Ну, у меня есть несколько UIImageView (animationView), летающих по экрану.Я использую класс UIAnimation, чтобы оживить их.В то время как у меня есть еще один UIImageView (myObject). Я пытаюсь столкнуться с ними, в то время как я перемещаю «myObject» по экрану с помощью метода touchesMoved.Проблема в том, что я не могу обнаружить столкновение.Я использую следующий метод:

 if (CGRectIntersectsRect(animationView.frame, myObject.frame)) {
   NSLog(@"Collision occurred");
 }

1 Ответ

1 голос
/ 10 июля 2010

Полагаю, вы говорите о CAAnimation, а не об UIAnimation.

В Core Animation текущие значения анимированных свойств не отражаются в исходных объектах (видах, слоях), к которым они были применены. Вместо этого вам нужно взглянуть на слой presentationLayer, чтобы получить текущее эффективное значение:

CGRect viewFrame = ((CALayer*)[animationView.layer presentationLayer]).frame;
CGRect objectFrame = ((CALayer*)[myObject.layer presentationLayer]).frame;
if (CGRectIntersectsRect(viewFrame, objectFrame)) {
    NSLog(@"Collision occurred");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...