Когда вы устанавливаете альфа на ноль, поворачиваясь и спрашивая представление о его альфе, вы получите ноль.Даже если анимация еще не закончена (разница между modelLayer и presentationLayer в Core Animation, если вы хотите понять, что происходит).
Чтобы получить то, что вы ищете, что-то подобное должно работать;
- (BOOL)shouldAutorotateToInterfaceOrientation:(...) {
BOOL shouldAutoratate = NO;
if(self.splashViewFaded) {
shouldAutorotate = YES;
}
return shouldAutorotate;
}
Тогда в вашем appDidFinishLaunching
методе (или там, где это имеет смысл) сделайте что-то вроде этого;
self.viewController.splashViewFaded = NO;
[UIView animateWithDuration:0.25 // or whatever
delay:0.0 // or whatever
options:UIViewAnimationOptionCurveEaseInOut
animations:^() {
self.splashView.alpha = 0.0;
}
completion:^() {
self.viewController.splashViewFaded = YES;
[self.splashView removeFromSuperview];
}];
Слово для мудрых, я набрал это по памяти, так что оно, вероятно, победит 'Скомпилируйте, если вы копируете и вставляете, пожалуйста, прочитайте документы.