Что использовать вместо UIScreen.экране().applicationFrame для swift в 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))

4 ответов


использовать

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

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

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


для:

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

и:

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

начиная с swift 3 вам нужно использовать его вот так.

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