【问题标题】:Swift: Determine iOS Screen size [duplicate]Swift:确定iOS屏幕尺寸[重复]
【发布时间】:2014-06-08 20:58:57
【问题描述】:

无论屏幕大小如何,我都想使用 Swift 代码在我的应用中正确定位项目。例如,如果我希望按钮占屏幕宽度的 75%,我可以使用 (screenWidth * .75) 之类的方法来设置按钮的宽度。我发现这可以通过在 Objective-C 中确定

CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;

不幸的是,我不确定如何将其转换为 Swift。有人有想法吗?

谢谢!

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    在 Swift 5.0 中

    let screenSize: CGRect = UIScreen.main.bounds
    

    Swift 4.0

    // Screen width.
    public var screenWidth: CGFloat {
        return UIScreen.main.bounds.width
    }
    
    // Screen height.
    public var screenHeight: CGFloat {
        return UIScreen.main.bounds.height
    }
    

    在 Swift 3.0 中

    let screenSize = UIScreen.main.bounds
    let screenWidth = screenSize.width
    let screenHeight = screenSize.height
    

    在较旧的 swift 中:
    做这样的事情:

    let screenSize: CGRect = UIScreen.mainScreen().bounds
    

    然后你可以像这样访问宽度和高度:

    let screenWidth = screenSize.width
    let screenHeight = screenSize.height
    

    如果您想要屏幕宽度的 75%,您可以:

    let screenWidth = screenSize.width * 0.75
    

    【讨论】:

    • 当然你不需要分号(我知道多年来的 C 编码习惯 :-)),你可以省略 :CGRect 并写 let screenSize = UIScreen.mainScreen()。 bounds 和 screenSize 将从分配中推断类型。
    • 必须小心,因为此解决方案没有考虑设备方向。在横向宽度和高度交换
    • 设备旋转时如何调整大小
    • Swift 3 是 UIScreen.main.bounds,而不是 UIScreen.main().bounds
    • 这不适用于拆分视图。该应用程序处于拆分视图中,但仍会返回,就好像它占据了 iPad 的全屏一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-09-04
    相关资源
    最近更新 更多