2015-10-31 154 views
10

這可能是一個簡單的問題,但由於我是初學者,最好問問。什麼使用,而不是UIScreen.mainScreen()。應用程序框架爲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)) 
+1

您可以使用UIScreen.mainScreen()。bounds.size。 – BHUMICA

回答

13

使用

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

爲:

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

和:

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

我知道UIScreen.mainScreen().bounds是推薦的替代方案;然而,這與UIScreen.mainScreen().applicationFrame並不完全等價,特別是當您的應用程序不佔用整個屏幕時,這在某些iPad上的「拆分視圖」和「滑動覆蓋」功能時會發生。

在這種情況下,這是一個很好的選擇: UIApplication.sharedApplication.keyWindow.frame。 (當然keyWindow必須可用,又名,你確實調用makeKeyAndVisible

+0

這是答案。 UIScreen.main.bounds在某些情況下(即當您打電話時)不會** **。 – ChrisRockGM

1

從swift 3開始,你現在需要使用它。

let SCREEN_WIDTH = UIScreen.main.bounds.size.width 
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height 
相關問題