Cihaz genişliği ve yüksekliği nasıl elde edilir?

Objective - C'de aşağıdaki kodu kullanarak cihaz genişliğini ve yüksekliğini elde edebiliriz:

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

bunu Swift ile nasıl yapabilirim ?

55
tarihinde sordu h0ussni 2014-06-06 19:00:35
kaynak

10 ответов

denemedim ama olmalı..

var bounds = UIScreen.main.bounds
var width = bounds.size.width
var height = bounds.size.height
110
cevap iPatel 2017-11-16 08:16:59
kaynak

@Houssni 'In cevabı doğru, ancak hızlı konuştuğumuzdan ve bu kullanım davası sık sık ortaya çıkacağından, CGRect buna benzer şekilde

uzatmayı düşünebiliriz
extension CGRect {
    var wh: (w: CGFloat, h: CGFloat) {
        return (size.width, size.height)
    }
}

sonra gibi kullanabilirsiniz:

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

Yaşasın! :)

16
cevap Pascal 2014-06-06 19:45:00
kaynak

Swift 4

let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
13
cevap Adam Smaka 2017-10-27 19:29:58
kaynak
Kodunuzda kullanmak istiyorsanız

. Al bakalım.

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")

    }


}
11
cevap bpolat 2016-03-04 20:34:54
kaynak
var sizeRect = UIScreen.mainScreen().applicationFrame
var width    = sizeRect.size.width
var height   = sizeRect.size.height

tam olarak böyle, aynı zamanda test etti.

8
cevap h0ussni 2015-07-19 13:46:38
kaynak

(Swift 3) en genişlik ve yükseklik değerleri cihazın geçerli yönelim dayalı olacağını unutmayın. Rotasyona dayalı olmayan ve bir portre rotasyonunda sanki sonuçlar veren tutarlı bir değer istiyorsanız, fixedCoordinateSpace a try:

let screenSize = UIScreen.main.fixedCoordinateSpace.bounds
5
cevap Paul Bonneville 2016-09-12 21:59:00
kaynak

cihaz ekran boyutunu Aradığınızdan en basit yol:

let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height
4
cevap jeff-ziligy 2015-09-29 16:02:47
kaynak

@Adam Smaka'nın cevabı yakınken, Swift 3'te şu şekildedir:

let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
2
cevap WMios 2016-11-09 11:58:39
kaynak

bir uiscreen nesnesi, donanım tabanlı bir görüntü ile ilişkili özellikleri tanımlar. iOS cihazlarının ana ekranı ve sıfır veya daha fazla ekli ekranı vardır. Her ekran nesnesi, ilişkili ekran ve diğer ilginç özellikler

için sınır dikdörtgenini tanımlar

Apple Doc URL:

https://developer.apple.com/reference/uikit/uiwindow/1621597-screen

Swift 3.0

ile kullanıcının Cihazının yüksekliği/genişliği elde etmek için
let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width
1
cevap Aks 2017-03-15 00:19:47
kaynak

Swift 4'te nsscreen'i kullanmak zorunda kaldım.ana?.deviceDescription

let deviceDescription = NSScreen.main?.deviceDescription          
let screenSize = deviceDescription![.size]
let screenHeight = (screenSize as! NSSize).height
0
cevap ohthepain 2018-04-30 16:58:14
kaynak

Diğer sorular cocoa-touch swift