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中描述。

【讨论】:

那么除了使用setStatusBarOrientationtransform之外,没有别的办法了吗?【参考方案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:] 的替代方案的主要内容,如果未能解决你的问题,请参考以下文章

同步服务和 iOS

为 iPhone SDK 3.2 准备通用应用程序

iPhone/iPad 项目 xCode

iOS 配件 SDK - 3.5mm 插孔控制

facebook ios sdk 或苹果社交框架

如何支持适用于 iPhone、iPad 和 iPad Mini 的 iOS 应用程序