pantalla españa como color cambio cambiar apple iphone objective-c cocoa-touch ipad

españa - iphone xs



IPhone/IPad: ¿Cómo obtener ancho de pantalla mediante programación? (7)

A partir de iOS 9.0 no hay forma de obtener la orientación de manera confiable. Este es el código que utilicé para una aplicación que diseño solo para modo retrato, por lo que si la aplicación se abre en modo horizontal, seguirá siendo precisa:

screenHeight = [[UIScreen mainScreen] bounds].size.height; screenWidth = [[UIScreen mainScreen] bounds].size.width; if (screenWidth > screenHeight) { float tempHeight = screenWidth; screenWidth = screenHeight; screenHeight = tempHeight; }

Hola, me pregunto si hay una manera de obtener el ancho programáticamente.

Estoy buscando algo lo suficientemente general como para acomodar iphone 3gs, iphone 4, ipad. Además, el ancho debería cambiar en función de si el dispositivo es vertical u horizontal (para ipad).

¿¿Alguien sabe cómo hacer esto?? He estado buscando por un tiempo ... ¡gracias!


Eche un vistazo a UIScreen .

p.ej.

CGFloat width = [UIScreen mainScreen].bounds.size.width;

Eche un vistazo a la propiedad applicationFrame si no desea que se incluya la barra de estado (no afectará el ancho).

ACTUALIZACIÓN: Resulta que UIScreen (-bounds o -applicationFrame) no tiene en cuenta la orientación actual de la interfaz. Un enfoque más correcto sería preguntarle a su UIView por sus límites, suponiendo que este UIView haya sido rotado automáticamente por su controlador View.

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { CGFloat width = CGRectGetWidth(self.view.bounds); }

Si View View Controller no está girando automáticamente, deberá verificar la orientación de la interfaz para determinar qué parte de los límites de la vista representa el "ancho" y la "altura". Tenga en cuenta que la propiedad del marco le dará la rect de la vista en el espacio de coordenadas de UIWindow que (de forma predeterminada) no tendrá en cuenta la orientación de la interfaz.


Esta es una forma rápida de obtener tamaños de pantalla, esto también tiene en cuenta la orientación actual de la interfaz:

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 en:

https://github.com/goktugyil/EZSwiftExtensions


Esto se puede hacer en 3 líneas de código :

// grab the window frame and adjust it for orientation UIView *rootView = [[[UIApplication sharedApplication] keyWindow] rootViewController].view; CGRect originalFrame = [[UIScreen mainScreen] bounds]; CGRect adjustedFrame = [rootView convertRect:originalFrame fromView:nil];


Use este código que ayudará

[[UIScreen mainScreen] bounds].size.height [[UIScreen mainScreen] bounds].size.width


utilizar:

NSLog(@"%f",[[UIScreen mainScreen] bounds].size.width) ;


CGRect screen = [[UIScreen mainScreen] bounds]; CGFloat width = CGRectGetWidth(screen); //Bonus height. CGFloat height = CGRectGetHeight(screen);