Я использую анимацию UIView
для перемещения кнопки по экрану. В то время как он движется, у меня есть NSTimer
работает методUIButton.frame при использовании анимации UIView
checkForCollision
который выглядит следующим образом:
for(UIButton* b in squares)
if(CGRectIntersectsRect(playerSquare.frame, b.frame)) {
[self showEndMenu];
break;
}
с интервалом .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]
не вызывается. Я не знаю, как это решить; При необходимости я могу предоставить больше кода. Спасибо!
Возможный дубликат [анимация анимации UIView во время анимации] (http://stackoverflow.com/questions/6545545/uiview-animation-determine-center-during-animation) – jrturton