我正在使用UIView
動畫在屏幕上移動按鈕。雖然它是移動的,我有一個NSTimer
運行方法使用UIView動畫時的UIButton.frame
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]
不會被調用。我不知道如何解決這個問題。如果需要的話,我可以提供更多的代碼。謝謝!
[動畫中的UIView動畫確定中心]的可能重複(http://stackoverflow.com/questions/6545545/uiview-animation-determine-center-during-animation) – jrturton