Pek çok SO şeyi ve Apple'ın referanslarında aradım, ancak yine de sorunumu yönetemiyorum.
Neyim var:
- 2
UIImageView
s ve 2UIButton
s bunlara bağlı bir ekran - 2 çeşit animasyon:
- Her görüntünün arka arkaya, yalnızca bir kez yukarı ve sonra küçültülmesi
viewDidLoad
- Bir düğmeye basıldığında (her birinin "içinde" gizlenen özel bir düğme
UIImageView
), uygun animasyonu tetikler - her ikisininUIImageView
de değil, yalnızca birinin - (aynı zamanda yukarı, sonra aşağı ölçekleme). - İOS4 + için yazarken bana blok tabanlı animasyonlar kullanmam söylendi!
- Her görüntünün arka arkaya, yalnızca bir kez yukarı ve sonra küçültülmesi
Neye ihtiyacım var:
Çalışan bir animasyonu nasıl iptal ederim? Sonuncusu dışında iptal etmeyi başardım ...: /
İşte kod pasajım:
[UIImageView animateWithDuration:2.0
delay:0.1
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
isAnimating = YES;
self.bigLetter.transform = CGAffineTransformScale(self.bigLetter.transform, 2.0, 2.0);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.bigLetter.transform = CGAffineTransformScale(self.bigLetter.transform, 0.5, 0.5);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.smallLetter.transform = CGAffineTransformScale(self.smallLetter.transform, 2.0, 2.0);
} completion:^(BOOL finished){
if(! finished) return;
[UIImageView animateWithDuration:2.0
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
self.smallLetter.transform = CGAffineTransformScale(self.smallLetter.transform, 0.5, 0.5);
}
completion:^(BOOL finished){
if (!finished) return;
//block letter buttons
[self.bigLetterButton setUserInteractionEnabled:YES];
[self.smallLetterButton setUserInteractionEnabled:YES];
//NSLog(@"vieDidLoad animations finished");
}];
}];
}];
}];
Her nasılsa smallLetter
UIImageView
düzgün çalışmıyor, çünkü (buton üzerinden) basıldığında bigLetter
animasyonları düzgün şekilde iptal ediyor ...
DÜZENLEME:
Bu çözümü kullandım, ancak ölçek küçültme konusunda hala sorun yaşıyorum smallLetter
UIImageView
- hiç iptal etmiyorum ...
çözüm
DÜZENLEME2: Bunu sonraki / önceki yöntemlerin başına ekledim:
- (void)stopAnimation:(UIImageView*)source {
[UIView animateWithDuration:0.01
delay:0.0
options:(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction)
animations:^ {
source.transform = CGAffineTransformIdentity;
}
completion:NULL
];
}
sorun devam ediyor ...: / animasyon zincirindeki harfler için son animasyonun nasıl kesileceği hakkında hiçbir fikrim yok