Xcode不遵循设备方向

31

4
иҜ·жЈҖжҹҘжӮЁзҡ„info.plistж–Ү件дёӯзҡ„вҖңж”ҜжҢҒзҡ„з•Ңйқўж–№еҗ‘вҖқж•°еҖјгҖӮж¶ҰиүІеҶ…容并дҪҝе…¶жӣҙеҠ йҖҡдҝ—жҳ“жҮӮпјҢдҪҶдёҚиҰҒж”№еҸҳеҺҹжқҘзҡ„ж„ҸжҖқгҖӮ - Karlo A. López
我已经在我的 info.plist 中包含了以下内容:<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array> - Jeung
我遇到了同样的问题。info.plist 也没问题,有什么进展吗? - MattyK14
有相同的问题。有人找到原因了吗? - Sandy
这个问题我也遇到了!这是 Xcode 和/或 SwiftUI 的一个 bug。我们期望 Apple 能够提供比这更好的服务!! - drago
5个回答

49
在我的情况下(Xcode 13.1),这对我来说完美地运作:
按照以下步骤操作:
  1. 选择你的目标;
  2. 选择 Build Settings
  3. 选择 AllCombined选项;
  4. 搜索 orientation 关键字;
  5. 注意 Supported interface Orientations(iPhone),点击右侧的值;
  6. 删除你不想要的方向。


这个很好用。 我试图在“常规”选项卡上使用取消选择来禁用它,但它没有起作用,它们仍然存在于构建设置中。在构建设置中,我将它们移除了,现在它可以正常工作了。 谢谢。 - Guru Dev
这个非常好用。不需要添加到Info.plist文件中,也不需要在代码中覆盖。感谢@zephyr。 - atineoSE
这个有效!在创建新项目时,Xcode 13.3.1没有将任何条目放入info.plist中的Supported Interface Orientations。即使我手动添加它们,Xcode也会忽略它们。@zephyr你的答案真是救命恩人。 - Ugo

22

Xcode中的“通用” -> “部署信息”界面可能会误导。请检查您的info.plist文件中的以下两个键:

UISupportedInterfaceOrientations

以及

UISupportedInterfaceOrientations~ipad


1
我遇到了相同的问题,我的只显示“竖屏(底部主页按钮)”。 - MattyK14
我将 UISupportedInterfaceOrientationsUISupportedInterfaceOrientations~ipad 都设置为 UIInterfaceOrientationPortrait,但仍然无效。 - Roen
有什么建议吗? - Madhav Thakker
1
这对我很有帮助,但我还想补充一点,在Xcode 13.0中,由于某些原因,SwiftUI项目不会自动生成info.plist文件。因此,如果您在选择项目目标后转到信息选项卡,您将能够编辑数组并使其正常工作。 - Jeff Cournoyer

5

我曾经遇到过类似的问题(在实体设备上)。在iPhone上它可以正常工作,但在iPad上却无法正常工作。解决办法是对两者都进行“设备”选项的调整,这种情况下是“横屏向右”。在部署信息下方的设备方向中勾选了横屏向右复选框


2
我也遇到了同样的问题,花费了整整一天的时间来解决它。我通过以下方法解决了这个问题:覆盖了AppDelegate方法。
    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        

        if self.allowOrentitaionRotation {
            return .allButUpsideDown;
        }
        return .portrait;
    }

1
也许Xcode 14修复了这个bug,现在可以轻松配置iPhone和iPad的设备方向: 输入图像描述

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接