2015-10-31 5 views
10

यह एक साधारण सवाल हो सकता है लेकिन जब से मैं एक नौसिखिया हूं, तो पूछना सर्वोत्तम है।UIScreen.mainScreen() के बजाय उपयोग करने के लिए क्या करें 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 के बराबर सटीक नहीं है, खासकर जब आपका एप्लिकेशन पूरी स्क्रीन पर कब्जा नहीं करता है, जो कुछ आईपैड पर स्प्लिट व्यू और स्लाइड ओवर फीचर के साथ होता है।

उस स्थिति में, यह एक अच्छा विकल्प है: UIApplication.sharedApplication.keyWindow.frame। (बेशक keyWindow उपलब्ध होना चाहिए, उर्फ, आपने makeKeyAndVisible का आह्वान किया)

+0

यह उत्तर है। UIScreen.main.bounds ** ** ** कुछ स्थितियों में काम नहीं करता है (यानी जब आप एक फोन कॉल पर होते हैं)। – ChrisRockGM

1

तेज़ 3 के रूप में आपको इसे इस तरह उपयोग करने की आवश्यकता है।

let SCREEN_WIDTH = UIScreen.main.bounds.size.width 
let SCREEN_HEIGHT = UIScreen.main.bounds.size.height 
संबंधित मुद्दे