cocoa touch - telefono - ¿Cómo obtener el ancho y la altura del dispositivo?
saber la resolucion de mi tablet (10)
En Objective-C podemos obtener el ancho y alto del dispositivo usando el siguiente código:
CGRect sizeRect = [UIScreen mainScreen].applicationFrame
float width = sizeRect.size.width
float height = sizeRect.size.height
¿Cómo se puede hacer esto con Swift?
(Swift 3) Tenga en cuenta que la mayoría de los valores de ancho y alto se basarán en la orientación actual del dispositivo. Si desea un valor consistente que no se base en la rotación y ofrezca resultados como si estuviera en una rotación de retroproyección, pruebe fixedCoordinateSpace :
let screenSize = UIScreen.main.fixedCoordinateSpace.bounds
Como está buscando el tamaño de pantalla del dispositivo, la forma más sencilla es:
let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height
En Swift 4 tuve que usar NSScreen.main? .deviceDescription
let deviceDescription = NSScreen.main?.deviceDescription let screenSize = deviceDescription![.size] let screenHeight = (screenSize as! NSSize).height
La respuesta de @Houssni es correcta, pero dado que estamos hablando de Swift y este caso de uso surgirá a menudo, uno podría considerar extender CGRect
similar a esto:
extension CGRect {
var wh: (w: CGFloat, h: CGFloat) {
return (size.width, size.height)
}
}
Entonces puedes usarlo como:
let (width, height) = UIScreen.mainScreen().applicationFrame.wh
¡Hurra! :)
Mientras que la respuesta de @Adam Smaka fue cercana, en Swift 3 es la siguiente:
let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
No lo he intentado, pero debería ser ...
var bounds = UIScreen.main.bounds
var width = bounds.size.width
var height = bounds.size.height
Si quieres usarlo en tu código. Aqui tienes.
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")
}
}
Un objeto UIScreen define las propiedades asociadas con una pantalla basada en hardware. Los dispositivos iOS tienen una pantalla principal y cero o más pantallas adjuntas. Cada objeto de pantalla define el rectángulo de límites para la pantalla asociada y otras propiedades interesantes
Apple Doc URL:
https://developer.apple.com/reference/uikit/uiwindow/1621597-screen
Para obtener la altura / ancho del dispositivo de su usuario con swift 3.0
let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width
Swift 4
let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
var sizeRect = UIScreen.mainScreen().applicationFrame
var width = sizeRect.size.width
var height = sizeRect.size.height
Exactamente así, también lo probó.