verificar verificacion seguida puedo numero llega factores escribe enviaron demasiados cuenta contraseña confianza codigos codigo cambiar autenticación apple iphone cocoa-touch xcode

iphone - verificacion - ¿Cómo obtener el tamaño de la pantalla usando el código?



se enviaron demasiados codigos iphone (10)

Me gustaría obtener el tamaño de la pantalla del iPhone para dar el cálculo, pero no encontré ninguna documentación sobre cómo obtenerlo. ¿Podrías resolverlo por mí?

Gracias


Aquí hay una forma rápida de obtener tamaños de pantalla:

var screenWidth: CGFloat { if UIInterfaceOrientationIsPortrait(screenOrientation) { return UIScreen.mainScreen().bounds.size.width } else { return UIScreen.mainScreen().bounds.size.height } } var screenHeight: CGFloat { if UIInterfaceOrientationIsPortrait(screenOrientation) { return UIScreen.mainScreen().bounds.size.height } else { return UIScreen.mainScreen().bounds.size.width } } var screenOrientation: UIInterfaceOrientation { return UIApplication.sharedApplication().statusBarOrientation }

Estos se incluyen como una función estándar here .

Esto también está en la documentación.


Aquí hay una solución ''rápida'': (Actualizado para veloz 3.x)

let screenWidth = UIScreen.main.fixedCoordinateSpace.bounds.width let screenHeight = UIScreen.main.fixedCoordinateSpace.bounds.height

Esto informa en puntos no en píxeles y "siempre refleja [s] las dimensiones de la pantalla del dispositivo en una orientación vertical" (Apple Docs) . ¡No necesita molestarse con UIAnnoyinglyLongDeviceOrientation!

Si desea que el ancho y la altura reflejen la orientación del dispositivo:

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

Aquí el ancho y la altura cambiarán los valores de flip flop según si la pantalla está en vertical u horizontal.

Y aquí está cómo obtener el tamaño de la pantalla medido en píxeles, no en puntos:

let screenWidthInPixels = UIScreen.main.nativeBounds.width let screenHeightInPixels = UIScreen.main.nativeBounds.height

Esto también "se basa en el dispositivo en una orientación vertical. Este valor no cambia a medida que el dispositivo gira". (Apple Docs)

Tenga en cuenta que para swift 2.xy menos, debe usar UIScreen.mainScreen() lugar de UIScreen.main


El uso de los UIScreen de UIScreen es una buena manera de hacerlo, pero debe CGGeometry funciones de CGGeometry para acceder a los datos de CGRect lugar de acceder a ellos directamente. Vea los docs CGGeometry .

CGRect screenBound = [[UIScreen mainScreen] bounds]; CGFloat screenWidth = CGRectGetWidth(screenBound); CGFloat screenHeight = CGRectGetHeight(screenBound);


Similar a la anterior, pero ligeramente menos detallada:

CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width; CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height;


Suponiendo que desea tomar en cuenta la orientación actual, use:

float screen_width; float screen_height; float vers = [[[UIDevice currentDevice] systemVersion] floatValue]; UIInterfaceOrientation orient = [UIApplication sharedApplication].statusBarOrientation; if (vers < 8 && UIInterfaceOrientationIsLandscape(orient)) { screen_height = [[UIScreen mainScreen] bounds].size.width; screen_width = [[UIScreen mainScreen] bounds].size.height; } else { screen_width = [[UIScreen mainScreen] bounds].size.width; screen_height = [[UIScreen mainScreen] bounds].size.height; }


Use este código para corregir en iOS8:

float SW; float SH; UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; if (( [[[UIDevice currentDevice] systemVersion] floatValue]<8) && UIInterfaceOrientationIsLandscape(orientation)) { SW = [[UIScreen mainScreen] bounds].size.height; SH = [[UIScreen mainScreen] bounds].size.width; } else { SW = [[UIScreen mainScreen] bounds].size.width; SH = [[UIScreen mainScreen] bounds].size.height; }


Utilice los bounds de propiedad de UIView si desea conocer el tamaño de una determinada vista o [[UIScreen mainScreen] bounds] si desea conocer el tamaño de pantalla del dispositivo.



Puede usar la propiedad de bounds en una instancia de UIScreen:

CGRect screenBound = [[UIScreen mainScreen] bounds]; CGSize screenSize = screenBound.size; CGFloat screenWidth = screenSize.width; CGFloat screenHeight = screenSize.height;

La mayoría de las personas querrá la pantalla principal; si tiene un dispositivo conectado a un televisor, en su lugar puede querer iterar sobre UIScreens y obtener los límites para cada uno.

Más información en los documentos de la clase UIScreen .


float screen_Height; float screen_Width; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) { screen_Height = [[UIScreen mainScreen] bounds].size.height; screen_Width = [[UIScreen mainScreen] bounds].size.width; } else { screen_Height = ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.height : [[UIScreen mainScreen] bounds].size.width); screen_Width = ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.width : [[UIScreen mainScreen] bounds].size.height); }