iOS (iPhone/iPad) SDK - [[UIApplication sharedApplication] setStatusBarOrientation:animated:] 的替代方案
Posted
技术标签:
【中文标题】iOS (iPhone/iPad) SDK - [[UIApplication sharedApplication] setStatusBarOrientation:animated:] 的替代方案【英文标题】:iOS (iPhone/iPad) SDK - Alternative for [[UIApplication sharedApplication] setStatusBarOrientation:animated:] 【发布时间】:2011-08-11 18:04:54 【问题描述】:[[UIApplication sharedApplication] setStatusBarOrientation:animated:]
有替代方案吗? setStatusBarOrientation
,正如你在它的名字中看到的,只旋转状态栏。有什么东西可以像物理旋转设备一样旋转整个应用程序吗?
【问题讨论】:
【参考方案1】:如果您想手动更改方向(不使用自动旋转),您必须自己旋转和定位视图,如this question 的回答中所述。支持自转在the documentation中描述。
【讨论】:
那么除了使用setStatusBarOrientation
和transform
之外,没有别的办法了吗?【参考方案2】:
if (orientation == UIInterfaceOrientationPortraitUpsideDown)
if (!window)
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
window.transform = CGAffineTransformMakeRotation(-M_PI);
[UIView commitAnimations];
注意:我猜你需要 coregraphics 框架。
【讨论】:
请在您的答案中添加一些解释,说明代码的作用以及它如何解决问题。【参考方案3】:您确实可以通过这种方式强制旋转:
if ([[UIDevice currentDevice] respondsToSelector: @selector(setOrientation:)])
[[UIDevice currentDevice] setOrientation: UIInterfaceOrientationPortrait];
如果您想旋转到横向,请将 UIInterfaceOrientationPortrait 更改为 UIInterfaceOrientationLandscape
【讨论】:
使用类似NSInvocation
的东西可能会更好,这样就不会出现编译错误。以上是关于iOS (iPhone/iPad) SDK - [[UIApplication sharedApplication] setStatusBarOrientation:animated:] 的替代方案的主要内容,如果未能解决你的问题,请参考以下文章