【问题标题】:How to keep device orientation for iPhone SE exclusively to portrait only?如何将 iPhone SE 的设备方向仅保持为纵向?
【发布时间】:2018-02-09 00:09:14
【问题描述】:

我正在为我的应用构建横向支持,但我不想支持 iPhone SE 的小屏幕,因为它很难适应横向 UI。

有没有办法只为 iPhone SE 设置纵向,而所有其他 iPhone 型号都支持横向?

我试过这段代码,但对我不起作用。

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        if  UIDevice.current.modelName == "iPhone 4"  ||
            UIDevice.current.modelName == "iPhone 5"  ||
            UIDevice.current.modelName == "iPhone 4s" ||
            UIDevice.current.modelName == "iPhone 5s" {

            return .portrait
        } else {
            return .all
        }
    }

谢谢

【问题讨论】:

    标签: ios iphone swift xcode device-orientation


    【解决方案1】:

    永远不要在设备上做出布局决策。根据屏幕/视图大小做出决定。

    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
        let size = UIScreen.main.bounds.size
        let len = max(size.height, size.width)
        if len <= 480 {
            return .portrait
        } else {
            return .all
        }
    }
    

    【讨论】:

    • 但是 iPhone 5s 是 320*568 ,max 是 568 不小于 480 所以会是所有方向,他只需要纵向
    • @Sh_Khan 很好。只需将 480 更改为 568 即可避免所有 4" 及更小的设备的横向。答案的重点是演示解决问题的正确方法。具体数字可根据需要更改。3.5" 设备使用 480,568适用于 4" 设备等。
    • 你不应该把这个决定基于developer.apple.com/documentation/uikit/…
    • @BallpointBen 否,因为所有 iPhone 对于给定的方向都使用相同的尺寸等级。
    • 不,他们没有。 iPad 在两个维度上都是常规的。 iPhone 体积更小,结构紧凑。
    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多