以编程方式更改视图方向而无需旋转 ipad

Posted

技术标签:

【中文标题】以编程方式更改视图方向而无需旋转 ipad【英文标题】:Programmatically change view orientation without rotating ipad 【发布时间】:2011-08-10 09:15:56 【问题描述】:

我想根据某些条件旋转 ViewController。 shouldAutorotateToInterfaceOrientation 的问题是视图总是以纵向/横向方向开始(在 Interface Builder 中设置),用户必须旋转 ipad 才能使用正确的模式....我怎样才能改变这种行为? 谢谢。

【问题讨论】:

【参考方案1】:

对视图应用变换。

view.transform = CGAffineTransformMakeRotation(M_PI);

您可以使用 UIView 动画来为更改设置动画。

【讨论】:

我会尽力让你知道的。谢谢你。另一件事:这会使用 Interf Builder 中定义的自动调整规则吗? 不,上面的代码不会改变视图的大小,它只会旋转它。请注意,根据文档,应用了非身份转换的视图在 frame 属性中具有未定义的值。【参考方案2】:

您也可以尝试在 info.plist 中添加此内容:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

来源:ipad default-landscape not displaying

【讨论】:

【参考方案3】:
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

这将在不旋转设备的情况下将方向更改为纵向模式。同样您可以使用 景观也

【讨论】:

这可行,但它不在 api 文档中,因此您可能违反了 Apple 关于私有 api 的规则,如果您使用它,您的应用可能会被拒绝。

以上是关于以编程方式更改视图方向而无需旋转 ipad的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中以编程方式旋转一组按钮?

如何以编程方式自动旋转UIScrollView和UIImageView?

将值从选择器视图设置为文本字段,而无需以编程方式全局快速声明 uitextfield

以编程方式更改软键盘中候选视图的颜色

Android:在方向更改时保留相机预览,而其他视图可以旋转

如何以编程方式设置 UWP 应用的方向