Swift:确定iOS屏幕大小

Z-T*_*ech 191 ios swift

我想使用Swift代码在我的应用中正确定位项目,无论屏幕尺寸是多少.例如,如果我想要一个按钮占屏幕宽度的75%,我可以做一些类似于(screenWidth * .75)按钮宽度的事情.我发现这可以通过Objective-C来确定

CGFloat screenWidth = screenSize.width;
CGFloat screenHeight = screenSize.height;
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Gop*_*ath 616

在Swift 3.0中

let screenSize = UIScreen.main.bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height
Run Code Online (Sandbox Code Playgroud)

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

let screenSize: CGRect = UIScreen.mainScreen().bounds
Run Code Online (Sandbox Code Playgroud)

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

let screenWidth = screenSize.width
let screenHeight = screenSize.height
Run Code Online (Sandbox Code Playgroud)

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

let screenWidth = screenSize.width * 0.75
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)

  • Swift 3是UIScreen.main.bounds,而不是UIScreen.main().bounds (16认同)
  • 必须小心,因为此解决方案不考虑设备方向.在横向宽度和高度交换 (5认同)
  • 当然你不需要分号(我知道多年C编码的习惯:-))你可以省略:CGRect和write let screenSize = UIScreen.mainScreen().bounds和screenSize将推断出类型分配. (3认同)
  • 这不适用于分割视图。该应用程序处于分屏视图中,但仍然返回,就好像它占据了 iPad 的全屏一样。 (3认同)