cocoa touch - डिवाइस की चौड़ाई और ऊंचाई कैसे प्राप्त करें?




cocoa-touch swift (7)

उद्देश्य-सी में हम निम्नलिखित कोड का उपयोग कर डिवाइस चौड़ाई और ऊंचाई प्राप्त कर सकते हैं:

CGRect sizeRect = [UIScreen mainScreen].applicationFrame
float width = sizeRect.size.width
float height = sizeRect.size.height

स्विफ्ट के साथ यह कैसे कर सकता है?


(स्विफ्ट 3) ध्यान रखें कि अधिकांश चौड़ाई और ऊंचाई मान डिवाइस के वर्तमान अभिविन्यास पर आधारित होंगे। यदि आप एक सतत मान चाहते हैं जो घूर्णन पर आधारित नहीं है और परिणाम प्रदान करता है जैसे कि आप एक पोर्ट्रेट-अप रोटेशन में थे, तो निश्चित कोऑर्डिनेटस्पेस को आज़माएं:

let screenSize = UIScreen.main.fixedCoordinateSpace.bounds

@ होउस्नी का जवाब सही है, लेकिन चूंकि हम स्विफ्ट की बात कर रहे हैं और यह उपयोग मामला अक्सर आ जाएगा, कोई इस तरह के CGRect को विस्तारित करने पर विचार कर सकता है:

extension CGRect {
    var wh: (w: CGFloat, h: CGFloat) {
        return (size.width, size.height)
    }
}

फिर आप इसका उपयोग कर सकते हैं:

let (width, height) = UIScreen.mainScreen().applicationFrame.wh

हुर्रे! :)


चूंकि आप डिवाइस स्क्रीन आकार की तलाश में हैं, सबसे आसान तरीका यह है:

let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height

जबकि @ एडम स्काका का जवाब करीब था, स्विफ्ट 3 में यह निम्नलिखित है:

let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height

यदि आप इसे अपने कोड में उपयोग करना चाहते हैं। हेयर यू गो।

func iPhoneScreenSizes(){
    let bounds = UIScreen.mainScreen().bounds
    let height = bounds.size.height

    switch height {
    case 480.0:
        print("iPhone 3,4")
    case 568.0:
        print("iPhone 5")
    case 667.0:
        print("iPhone 6")
    case 736.0:
        print("iPhone 6+")

    default:
        print("not an iPhone")

    }


}

स्विफ्ट 4 में मुझे NSScreen.main ?dedeice डिस्क्रिप्शन का उपयोग करना पड़ा

let deviceDescription = NSScreen.main?.deviceDescription          
let screenSize = deviceDescription![.size]
let screenHeight = (screenSize as! NSSize).height

var sizeRect = UIScreen.mainScreen().applicationFrame
var width    = sizeRect.size.width
var height   = sizeRect.size.height

बिल्कुल इस तरह, इसका परीक्षण भी किया।







swift