Ich habe eine UIImageView, die programmatisch aufgerufen wird, ich versuche, es zu drehen, aber es funktioniert nicht. Das Bild wird in einem dynamischen UITableView platziert (ich kann es nicht in statisch ändern). Das Bild erscheint in meiner Tabellenansicht gut, aber es dreht sich einfach nicht.CABasicAnimation funktioniert nicht mit UIImageView
- (void)viewDidLoad
{
[super viewDidLoad];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(20, 122, 38, 38)];
imageView.image = [UIImage imageNamed:@"settings1.png"];
[self.view addSubview:imageView];
CABasicAnimation *spin;
spin = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
spin.fromValue = [NSNumber numberWithFloat:0];
spin.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
spin.duration = 4;
spin.repeatCount = 10*1000;
[imageView.layer addAnimation:spin forKey:@"360"];
Dank! Solch eine einfache Lösung, nur als Referenz, warum hat diese Methode funktioniert? liegt es daran, dass es bis zum viewDidLoad gewartet hat? – Ed3121577
@ user3121577 Grundsätzlich sollten Sie niemals versuchen, eine Animation zu starten, bis die Ansicht tatsächlich auf dem Bildschirm erscheint. An der Stelle, an der viewDidLoad aufgerufen wird, wurde die View-Controller-Ansicht geladen, aber noch nicht zur View-Hierarchie hinzugefügt, sodass manchmal Animationen und ähnliche Dinge in der View oder deren Subviews rausgeworfen werden können passiert zu früh im Lebenszyklus. –
Nun, das macht Sinn, nochmals vielen Dank! – Ed3121577