Nota: Esto puede ser un duplicado de Subview Doesnt AutoSize When Added to Root View ControllerGRANuLOMETRÍA automáticamente UIView después de agregar a la ventana
Tengo una aplicación para iPad que permite cambiar entre diferentes puntos de vista en la ventana principal. El código de la vista-conmutación se ve así:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
El problema es que cuando la nueva vista (un UISplitView) aparece en orientación horizontal, no está dimensionado para llenar la ventana. Hay un gran espacio negro vacío a la derecha. Parece que la vista tiene solo 768 píxeles de ancho, en lugar del ancho de 1024 píxeles de la ventana de paisaje.
Si giro el dispositivo a vertical y luego de nuevo a horizontal, la vista se dimensiona correctamente.
Si el dispositivo está en orientación vertical, todo funciona bien. El UISplitView también se dimensiona correctamente si es la primera vista que muestro. El problema solo ocurre si cambio a él después de que se haya mostrado otra vista, en el paisaje.
Entonces, ¿hay alguna manera de obligar al iPhone OS a cambiar el tamaño de la vista una vez que se haya agregado a la ventana?
He intentado llamar a sizeToFit
, y setNeedsLayout
. También intenté configurar el bounds
de la vista en el bounds
de la ventana, e intenté configurar el frame
para que coincida con el marco de la vista anterior.
¿No tiene problemas aquí, porque no calcula los 20px para la barra de navegación? – basti