I tienen un guión con 1 UIViewController
, sosteniendo 1 UIView
que contiene un número de anidados UIView
s. Me subclases el controlador de vista para poner en práctica este método:UIView tiene dimensiones retrato, mientras que en el paisaje?
- (BOOL)shouldAutorotateToInterfaceOrientation: UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
También he añadido
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeLeft</string>
a la Info.plist
.
En el viewDidLoad de la UIView principal por la que estoy haciendo esto:
El problema es el control sólo es 756px de ancho en lugar de la esperada 1024. Ver la pantalla de abajo para más detalles. He estado buscando por toda la web, pero no puedo encontrar una solución a este problema frustrante en cualquier lugar. Estoy usando Xcode 4.5 con iOS5.1 establecido como base SDK.
EDIT Está trabajando reemplazando el marco por límites. Sin embargo, no entiendo lo que está sucediendo, así que no está funcionando con el tamaño del marco.
¡Gracias! ¡Reemplazar 'frame' con límites funciona! Sin embargo, realmente no entiendo por qué? ¿Alguna posibilidad de hacerlo funcionar con frame? No entiendo por qué el tamaño de la UIView es diferente en la supervista y en su propio sistema de coordenadas – s1m0n
Según tengo entendido, eso sucede porque la vista se encuentra en la ventana y esa ventana debe tener un modo de paisaje interno, si eso está cerca de ser cierto, las coordenadas de vista en el sistema de coordenadas de la ventana no reflejan la rotación ya que la ventana se gira junto con su vista y su vista secundaria. Es posible que desee actualizar el conocimiento del sistema de coordenadas para una mejor comprensión (la rotación y tal vez la transición deben ser suficientes para este caso): http://en.wikipedia.org/wiki/Cartesian_coordinate_system Eso es una matemática escolar como lo recuerdo. –
Probablemente valga la pena leer a través de http://stackoverflow.com/questions/1210047/iphone-development-whats-the-difference-between-the-frame-and-the-bounds, y algunas de las preguntas vinculadas. –