Я использую анимацию UIView
для перемещения кнопки по экрану.Пока он движется, у меня NSTimer
работает метод
checkForCollision
, который выглядит следующим образом:
for(UIButton* b in squares)
if(CGRectIntersectsRect(playerSquare.frame, b.frame)) {
[self showEndMenu];
break;
}
с интервалом 0,05;Я хотел бы, чтобы этот метод уведомлял меня всякий раз, когда кнопка перемещается по пути другого.Похоже, проблема в том, что когда он проверяет кадр UIButton b
, он видит только кадр, к которому движется кнопка.
У меня кнопка анимируется следующим образом:
[UIView beginAnimations:@"" context:nil];
[UIView setAnimationDuration:1.3];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
view.center = destPoint;
[UIView commitAnimations];
Итак, если destPoint пересекает CGRect
playerSquare.frame
, вызывается [self showEndMenu]
.Но если кадр / позиция, в которой кнопка находится, скажем, на полпути анимации, пересекается playerSquare
, [self showEndMenu]
не вызывается.Я не знаю, как решить это;Я могу предоставить больше кода, если это будет необходимо.Спасибо!