Saya telah mencari banyak barang SO dan referensi Apple, tetapi masih tidak dapat mengelola masalah saya.
Apa yang saya punya:
- Sebuah layar dengan 2
UIImageView
detik dan 2UIButton
detik terhubung dengannya - 2 jenis animasi:
- Meningkatkan dan menurunkan skala setiap gambar, satu demi satu, hanya sekali
viewDidLoad
- Ketika sebuah tombol ditekan (tombol kustom tersembunyi 'di dalam' masing-masing
UIImageView
) itu memicu animasi yang sesuaiUIImageView
–hanya satu, tidak keduanya– (juga skala naik, lalu turun). - Saat saya menulis untuk iOS4 +, saya diberitahu untuk menggunakan animasi berbasis blok!
- Meningkatkan dan menurunkan skala setiap gambar, satu demi satu, hanya sekali
Apa yang saya butuhkan:
Bagaimana cara membatalkan animasi yang sedang berjalan? Aku sudah berhasil membatalkan semuanya kecuali yang terakhir ...: /
Ini cuplikan kode saya:
[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");
}];
}];
}];
}];
Entah bagaimana smallLetter
UIImageView
ini tidak berfungsi dengan baik, karena ketika ditekan (melalui tombol) bigLetter
membatalkan animasi dengan benar ...
EDIT:
Saya telah menggunakan solusi ini, tetapi masih mengalami masalah dengan memperkecil smallLetter
UIImageView
- tidak membatalkan sama sekali ...
solusi
EDIT2: Saya telah menambahkan ini di awal metode berikutnya / sebelumnya:
- (void)stopAnimation:(UIImageView*)source {
[UIView animateWithDuration:0.01
delay:0.0
options:(UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionAllowUserInteraction)
animations:^ {
source.transform = CGAffineTransformIdentity;
}
completion:NULL
];
}
masalah tetap ...: / tidak tahu bagaimana menghentikan animasi terakhir untuk huruf dalam rantai animasi