Что использовать вместо UIScreen.mainScreen(). ApplicationFrame для быстрого в ios 9.1?

Это может быть простой вопрос, но поскольку я новичок, лучше спросить.

Как говорится в заголовке, что я должен использовать вместо UIScreen.mainScreen().applicationFrame, поскольку он устарел в 9.0.

Если возможно, было бы здорово, если бы вы могли предоставить мне образец или пример, так как я считаю документ Яблока сложным.

В настоящее время я использую код ниже, но я хочу изменить его на новую версию. Я хотел бы услышать от вас!

  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))

Ответ 1

Используйте

let rect1 = UIScreen.mainScreen().bounds // Returns CGRect
let rect2 = UIScreen.mainScreen().bounds.size // Returns CGSize

Ответ 2

Я знаю, что UIScreen.mainScreen().bounds является рекомендуемой альтернативой; однако это не точный эквивалент UIScreen.mainScreen().applicationFrame, особенно если ваше приложение НЕ занимает весь экран, что происходит с функцией Split View и Slide Over на некоторых iPads.

В этом случае это хорошая альтернатива: UIApplication.sharedApplication.keyWindow.frame. (Конечно, keyWindow должен быть доступен, ака, вы вызывали makeKeyAndVisible)

Ответ 3

Для:

let width = UIScreen.mainScreen().bounds.width

и для:

let height = UIScreen.mainScreen().bounds.height

Ответ 4

С быстрым 3 вам нужно использовать его вот так.

let SCREEN_WIDTH = UIScreen.main.bounds.size.width
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height