首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IOS9.1中,用什么代替UIScreen.mainScreen().applicationFrame来快速运行呢?

在IOS9.1中,用什么代替UIScreen.mainScreen().applicationFrame来快速运行呢?
EN

Stack Overflow用户
提问于 2015-10-31 08:43:00
回答 5查看 15.5K关注 0票数 18

这可能是一个简单的问题,但由于我是一个初学者,这是最好的问。

正如标题所述,我应该使用什么来代替UIScreen.mainScreen().applicationFrame,因为它在9.0中被废弃了。

如果可能的话,如果您能给我提供一个示例或示例,那就太好了,因为我觉得Apples文档很难。

目前,我使用下面的代码,但我希望将其更改为新版本。我很想听听你的消息!

代码语言:javascript
复制
  let sizeRect = UIScreen.mainScreen().applicationFrame
  let posX = arc4random_uniform(UInt32(sizeRect.size.width))
  let posY = arc4random_uniform(UInt32(sizeRect.size.height))
  Enemy.position = CGPoint(x: CGFloat(posX), y: CGFloat(posY))
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-31 08:54:36

使用

代码语言:javascript
复制
let rect1 = UIScreen.mainScreen().bounds // Returns CGRect
let rect2 = UIScreen.mainScreen().bounds.size // Returns CGSize

Swift 3+ :

代码语言:javascript
复制
let rect1 = UIScreen.main.bounds // Returns CGRect
let rect2 = UIScreen.main.bounds.size // Returns CGSize
票数 20
EN

Stack Overflow用户

发布于 2017-05-17 16:15:53

我知道UIScreen.mainScreen().bounds是推荐的替代方案;然而,它并不完全等同于UIScreen.mainScreen().applicationFrame,特别是当您的应用程序没有占据整个屏幕时,这种情况发生在特定iPads上的Split和Slide功能上。

在这种情况下,这是一个很好的选择:UIApplication.sharedApplication.keyWindow.frame。(当然keyWindow必须是可用的,也就是说,您确实调用了makeKeyAndVisible)

票数 15
EN

Stack Overflow用户

发布于 2017-10-16 17:29:42

从斯威夫特3开始,你需要像现在这样使用它。

代码语言:javascript
复制
let SCREEN_WIDTH = UIScreen.main.bounds.size.width
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33449696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档