2011-08-03 27 views
6

Tengo que preguntarlo. Usando"UIScreen mainScreen] applicationFrame]" para modo Paisaje

[[UIScreen mainScreen] applicationFrame] 

Es una manera hermosa de obtener el área de trabajo del iphone o ipad en modo vertical. Pero, si quiero tener el mismo tamaño en el paisaje, hay otro código, o que tendrán que crear:

CGRect landscape = CGRectMake(0, 20, 1024, 748) 

Esto ni siquiera es genérico para iPhone y iPad.

+1

Me pregunto si es seguro suponer que el selector applicationFrame siempre devolverá la zona en modo vertical. (Y para simplemente cambiar los valores manualmente.) – Rich

+0

¿Ha resuelto esto con éxito? La transposición de los valores de ancho y alto no es deseable. – user216661

Respuesta

2

Puede utilizar [[[UIApplication sharedApplication] keyWindow] frame]

+0

Cuando llamo esto durante el selector loadView de mi controlador de vista, obtengo un CGRect con el origen y el tamaño establecidos en (0, 0). – Rich

+0

No estoy muy seguro pero me funcionó: 'loadView] [Line: 788] [[[UIApplication sharedApplication] keyWindow] frame]: {{0, 0}, {768, 1024}}'. ¿Puedes intentar llamar '[super loadView]' primero? Si eso no funcionó, te sugiero que intentes utilizar otro método. 'sizeToFit' tal vez? – Angelo

Cuestiones relacionadas