Что использовать вместо 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