Eche un vistazo a UIScreen.
por ejemplo.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Tome un vistazo a la propiedad applicationFrame si no desea que la barra de estado incluido (no afecta a la anchura).
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 la vista no se está haciendo girar-auto por el controlador de vista, entonces tendrá que comprobar la orientación de interfaz para determinar qué parte de la vista fuera representa la 'ancho' y '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.
es el ancho de la pantalla, la anchura del espacio de aplicaciones disponibles (sin la barra del sistema) o la anchura de una visión particular estas buscando? – VdesmedT
hrmm no estoy seguro. Supongo que solo quería el ancho del dispositivo (es decir, en ipad 768 para ancho de retrato y 1024 para ancho de paisaje) pero self.view.bounds parecía satisfacer esto. vea mi comentario a continuación – foreyez
Vea [esta respuesta más completa] (http://stackoverflow.com/a/7905540/17339) que toma en cuenta la orientación del dispositivo. –