Ответ 1
Используйте
let rect1 = UIScreen.mainScreen().bounds // Returns CGRect
let rect2 = UIScreen.mainScreen().bounds.size // Returns CGSize
Это может быть простой вопрос, но поскольку я новичок, лучше спросить.
Как говорится в заголовке, что я должен использовать вместо 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))
Используйте
let rect1 = UIScreen.mainScreen().bounds // Returns CGRect
let rect2 = UIScreen.mainScreen().bounds.size // Returns CGSize
Я знаю, что UIScreen.mainScreen().bounds
является рекомендуемой альтернативой; однако это не точный эквивалент UIScreen.mainScreen().applicationFrame
, особенно если ваше приложение НЕ занимает весь экран, что происходит с функцией Split View и Slide Over на некоторых iPads.
В этом случае это хорошая альтернатива:
UIApplication.sharedApplication.keyWindow.frame
. (Конечно, keyWindow
должен быть доступен, ака, вы вызывали makeKeyAndVisible
)
Для:
let width = UIScreen.mainScreen().bounds.width
и для:
let height = UIScreen.mainScreen().bounds.height
С быстрым 3 вам нужно использовать его вот так.
let SCREEN_WIDTH = UIScreen.main.bounds.size.width
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height