Bu animasyon bittiğinde bir yöntem denemeye çalışıyorum, ancak bazı durumlarda, örneğin kullanıcı uygulamadan çıktığında, tamamlanma bloğu asla çağrılmaz. Ayrıca, UIView animasyonuyla aynı zamanda bir animasyon ile bir VC görüntülendiğinde, tamamlanma bloğu hiçbir zaman aranmaz.UIView animasyon tamamlama bloğu, animasyon kesintiye uğradığında çağrılmadı
Animasyon bir şekilde kesilse bile geri aranmanın çağrıldığından emin olmak için ne yapmalıyım? UIView animasyon tamamlama bloğunu hiç kullanmamalı ve bunun yerine başka bir şey kullanmalı mıyım? Lütfen beni aydınlat..!
-(void)action {
[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.doorLeft.frame = CGRectMake(0, 0, self.doorLeft.frame.size.width, self.doorLeft.frame.size.height);
self.doorRight.frame = CGRectMake(self.frame.size.width -self.doorRight.frame.size.width, 0, self.doorRight.frame.size.width, self.doorRight.frame.size.height);
} completion:^(BOOL finished){
if (finished) {
switch (self.type) {
case 0:
[self.delegate startTOship];
break;
case 1:
[self.delegate gameTOship];
break;
case 2:
[self.delegate shipTOgame];
break;
case 3:
[self.delegate shipTOmap];
break;
case 4:
[self.delegate gameTOmap];
break;
case 5:
[self.delegate mapTOgame];
break;
case 6:
[self.delegate mapTOship];
break;
}
[UIView animateWithDuration:0.3
delay:0.5
options:UIViewAnimationOptionCurveEaseOut
animations:^{
self.doorLeft.frame = CGRectMake(-self.doorLeft.frame.size.width, 0, self.doorLeft.frame.size.width, self.doorLeft.frame.size.height);
self.doorRight.frame = CGRectMake(self.doorRight.frame.size.width *2, 0, self.doorRight.frame.size.width, self.doorRight.frame.size.height);
} completion:^(BOOL finished){
if (finished) {
[self actionEnded];
}
}
];
}
}
];}
Hmmm Ne zaman düzenlenmiş sorularımda birbiri ardına çeşitli animasyonlar içeren "zincirlenmiş" bir animasyonum varsa ne olur? – durazno
Ardından, son animasyon kodundan sonra taahhüt bloğunu ekleyin. – Tander
Hmm ama sanırım CAKeyframeAnimation ile gitmek zorundayım çünkü yaptığım şey tam olarak buna ihtiyaç duyuyor. CAKeyframeAnimation ayrıca animasyon kesintiye uğradığında veya CATransition ile birlikte kullanmak zorunda olduğumda tamamlanma blokunun hemen çağrıldığından emin olur mu? – durazno