在目标 c 中更改应用扩展的屏幕旋转
Posted
技术标签:
【中文标题】在目标 c 中更改应用扩展的屏幕旋转【英文标题】:change screen rotation of app extension in objective c 【发布时间】:2014-10-31 10:42:35 【问题描述】:如何从旋转屏幕锁定,我希望我的应用扩展程序仅处于纵向模式。 当我在照片中使用我的扩展程序时,我可以将屏幕旋转为横向。
谢谢
【问题讨论】:
我不确定,但我认为您的应用扩展继承了您的项目设置。所以把屏幕锁在那里,它就会到处被锁定 False,项目设置似乎不会影响应用扩展方向。不管你检查了什么,ios 似乎默认一切都是有效的方向。 【参考方案1】:你必须选择:
1-在项目中设置横向和纵向为支持的界面方向,然后对于每个ViewController,你将覆盖支持的界面方向;
2-在项目中只设置纵向模式,在需要的ViewController中,可以旋转90度
self.view.transform = CGAffineTransformMakeRotation(M_PI_2);
编辑:所以你可以这样做。将您的控制器设置为 keyPath UIDeviceOrientationDidChangeNotification
的观察者。那么:
-(void)changedOrientation: (NSNotification *)note
if (note)
UIDevice *dev = (UIDevice *)note.object;
if ([dev orientation] == UIInterfaceOrientationLandscapeRight)
self.view.transform = CGAffineTransformMakeRotation(M_PI_2);
else if ([dev orientation] == UIInterfaceOrientationPortrait)
self.view.transform = CGAffineTransformIdentity;
else if ([dev orientation] == UIInterfaceOrientationPortraitUpsideDown)
self.view.transform = CGAffineTransformIdentity;
else if ([dev orientation] == UIInterfaceOrientationLandscapeLeft)
self.view.transform = CGAffineTransformMakeRotation(-M_PI_2);
【讨论】:
其实我想禁用横向显示? 您好,我遇到了同样的问题。我只想在横向模式下显示 viewController。我的代码在 iOS 应用程序中有效,但在动作扩展中没有任何想法? 您好,我也发现这在 App Extensions 中不起作用。 UIDeviceOrientationDidChangeNotification 似乎没有被触发。以上是关于在目标 c 中更改应用扩展的屏幕旋转的主要内容,如果未能解决你的问题,请参考以下文章
在 React Native App 上停止屏幕旋转 [关闭]