Swift:确定iOS屏幕尺寸[重复]

Posted

技术标签:

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

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

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

不幸的是,我不确定如何将其转换为 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 的全屏一样。

以上是关于Swift:确定iOS屏幕尺寸[重复]的主要内容,如果未能解决你的问题,请参考以下文章

所有 iOS 屏幕尺寸的启动屏幕图像尺寸

屏幕尺寸适配 |代码 |斯威夫特 | iOS

适用于所有屏幕尺寸的 iOS 全屏背景图像

IOS - 将背景图像缩放到不同的屏幕尺寸并将标签放在固定位置上

确定多个 android 屏幕尺寸/密度的图像尺寸

交付到 App Store 时,Fastlane 框架不支持的屏幕尺寸