我需要在我創建的遊戲中讓我的角色跳躍(將origin.y
增加50
並反向)。最平滑的方式背靠背UIAnimations
到目前爲止,我所遇到的這樣的方式有兩種:
方法1:
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationOptionAutoreverse
animations:^{
CGRect frame = self.kevinImageView.frame;
frame.origin.y -= 50;
self.kevinImageView.frame = frame;
} completion:^(BOOL finished){
CGRect frame = self.kevinImageView.frame;
frame.origin.y = 135;
self.kevinImageView.frame = frame;
}];
問題:在每一個完整的跳躍動畫(上下)的結束ImageView
跳起來然後回落(可能由於調用completion
塊所需的微小量)。這是顯而易見的,我寧願不這樣做。
方法2:
[UIView animateWithDuration:1.0
animations:^{
CGRect frame = self.kevinImageView.frame;
frame.origin.y -= 50;
self.kevinImageView.frame = frame;
} completion:^(BOOL finished){
[UIView animateWithDuration:1.0
animations:^{
CGRect frame = self.kevinImageView.frame;
frame.origin.y += 50;
self.kevinImageView.frame = frame;
}];
}];
問題:如果我點擊的觀點(我用的是UITapGuestureRecognizer
)和ImageView
是在完成動畫(去背下來),該Image View
會彈回而不是完成其動畫。再次不是一個重大問題,但我應該能夠避免的事情。
有沒有什麼方法可以解決這兩個問題,或者解決其中一種方法的方法?
>>在你的方法2中,你錯過了完成塊。你添加了嗎? – Rashad
@Rashad在第二個動畫? – carloabelli
在你的第二個動畫中,你錯過了完成塊(在方法2中)。 – Rashad