我有一个初始屏幕,我将 alpha 从 100 淡化到 0。我希望 shouldAutorotateToInterfaceOrientation 仅在 alpha 为 0 时返回 YES。我无法使此代码工作:
if ( splashView.alpha == 0 )
{
return YES;
} else {
return NO;
}
相反,splashView.alpha 始终返回 null。有什么想法吗?
最佳答案
当您将 alpha 设置为零时,转身并向 View 询问其 alpha 将返回零。即使动画没有完成(如果您想了解发生了什么,Core Animation 中 modelLayer 和 presentationLayer 之间的区别)。
要获得您正在寻找的东西,这样的事情应该可行;
- (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];
}];
明智的话,我是凭内存输入的,所以它可能不会编译,如果你复制粘贴请去阅读文档。
关于ios - 禁止在 iOS 中旋转启动 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973732/