В Objective-C мы можем получить ширину и высоту устройства, используя следующий код:
CGRect sizeRect = [UIScreen mainScreen].applicationFrame
float width = sizeRect.size.width
float height = sizeRect.size.height
Как это сделать с помощью Swift?
В Objective-C мы можем получить ширину и высоту устройства, используя следующий код:
CGRect sizeRect = [UIScreen mainScreen].applicationFrame
float width = sizeRect.size.width
float height = sizeRect.size.height
Как это сделать с помощью Swift?
Я не пробовал, но это должно быть..
var bounds = UIScreen.main.bounds
var width = bounds.size.width
var height = bounds.size.height
@Houssni правильный, но поскольку мы говорим о Swift, и этот случай использования часто возникает, можно рассмотреть вопрос о расширении CGRect
, аналогичном этому:
extension CGRect {
var wh: (w: CGFloat, h: CGFloat) {
return (size.width, size.height)
}
}
Затем вы можете использовать его как:
let (width, height) = UIScreen.mainScreen().applicationFrame.wh
Ура!:)
Swift 4.2
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")
}
}
var sizeRect = UIScreen.mainScreen().applicationFrame
var width = sizeRect.size.width
var height = sizeRect.size.height
Точно так же протестировал и его.
(Swift 3) Имейте в виду, что большинство значений ширины и высоты будут основаны на текущей ориентации устройства. Если требуется согласованное значение, которое не основано на вращении, и предлагает результаты, как если бы вы были в ротации по вертикали, попробуйте fixedCoordinateSpace:
let screenSize = UIScreen.main.fixedCoordinateSpace.bounds
Поскольку вы ищете размер экрана устройства, самый простой способ:
let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height
Хотя ответ @Adam Smaka был близок, в Swift 3 он выглядит следующим образом:
let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
Объект UIScreen определяет свойства, связанные с аппаратным дисплеем. У устройств iOS есть главный экран и нулевые или более подключенные экраны. Каждый экранный объект определяет прямоугольник границ для связанного отображения и другие интересные свойства
URL-адрес Apple Doc:
https://developer.apple.com/reference/uikit/uiwindow/1621597-screen
Получить высоту/ширину пользовательского устройства ur с быстрым 3.0
let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width
В Swift 4 мне пришлось использовать NSScreen.main?.DeviceDescription
let deviceDescription = NSScreen.main?.deviceDescription let screenSize = deviceDescription![.size] let screenHeight = (screenSize as! NSSize).height