Mam UIImageView, który jest wywoływany programowo, próbuję go uruchomić, ale nie działa. Obraz zostanie umieszczony wewnątrz dynamicznego UITableView (nie mogę go zmienić na statyczny). Obraz wygląda dobrze w moim widoku tabeli, ale po prostu się nie kręci.CABasicAnimation nie działa z 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"];
Dzięki! Takie proste rozwiązanie, dla odniesienia, dlaczego ta metoda zadziałała? czy to dlatego, że czekał aż do viewDidLoad? – Ed3121577
@ user3121577 Zasadniczo nigdy nie powinieneś próbować uruchamiać animacji, dopóki widok nie pojawi się na ekranie. W momencie wywołania metody viewDidLoad widok kontrolera widoku został załadowany, ale nie został jeszcze dodany do hierarchii widoków, więc czasami animacje i podobne rzeczy w widoku lub jego podstrony mogą zostać odrzucone, ponieważ dzieje się zbyt wcześnie w cyklu życia. –
Cóż, to ma sens, dzięki jeszcze raz! – Ed3121577