web-dev-qa-db-ja.com

デバイスの幅と高さを取得する方法は?

Objective-Cでは、次のコードを使用してデバイスの幅と高さを取得できます。

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

Swiftを使用してこれを行う方法

62
Divya Bhalodiya

私は試していませんが、そうすべきです。

var bounds = UIScreen.main.bounds
var width = bounds.size.width
var height = bounds.size.height
120
iPatel

@Houssniの答えは正しいですが、私たちはSwiftを話しているので、このユースケースは頻繁に出てくるので、これに似たCGRectを拡張することを検討できます。

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

その後、次のように使用できます。

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

やった! :)

18
Pascal

Swift 4.2

let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
18
Adam Smaka

コードで使用する場合。どうぞ。

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

    }


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

まさにこのように、それもテストしました。

9
h0ussni

(Swift 3)ほとんどの幅と高さの値は、デバイスの現在の向きに基づいていることに注意してください。回転に基づかない一貫した値が必要で、ポートレートアップ回転のように結果が得られる場合は、fixedCoordinateSpaceを試してください。

let screenSize = UIScreen.main.fixedCoordinateSpace.bounds
6
Paul Bonneville

デバイスの画面サイズを探しているので、最も簡単な方法は次のとおりです。

let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height
5
jeff-ziligy

@Adam Smakaの答えは近かったが、Swift 3では次のようになる。

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

UIScreenオブジェクトは、ハードウェアベースのディスプレイに関連付けられたプロパティを定義します。 iOSデバイスには、メイン画面と0個以上の接続画面があります。各画面オブジェクトは、関連付けられたディスプレイおよびその他の興味深いプロパティの境界矩形を定義します

Apple Doc URL:

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

Swift 3.0でurユーザーのデバイスの高さ/幅を取得するには

let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width
2
Aks

Swift 4では、NSScreen.main?.deviceDescriptionを使用する必要がありました

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