Tengo una UIView personalizada que tiene un marco dedicado y establecido manualmente para la orientación horizontal y vertical, ya que el encoder automático de Mascaras simplemente no funciona en mi caso.Cómo forzar el diseño. Presentaciones de UIView.
he de poner esto en el marco de:
- (void)viewWillAppear:(BOOL)animated
y funciona como se esperaba.
Mi problema ahora es que mi UIView tiene además subvistas que también tienen una posición dedicada para retrato/paisaje.
coloco estos subvistas en:
- (void)layoutSubviews
Si ahora les dejo mi viewController en por ejemplo, orientación vertical, girar al paisaje en otra viewController y luego volver a esta vista Controlador Veo que mi vista se redimensionó correctamente, pero las subvistas de mi vista, que se colocan en layoutSubviews no se reposicionan aún, pero se cambian de tamaño de forma animada después la vista ya apareció.
nada hago en viewDidAppear y ya intentado llamar
- (void)layoutIfNeeded
Así como:
- (void)setNeedsLayout
En viewWillAppear, pero no parece que cambiar nada.
¿Alguna idea de lo que estoy haciendo mal?
Gracias.
este método parece funcionar mejor que simplemente llamar a self.view.layoutSubviews() –
Llamar a layoutSubviews usará todas las restricciones que haya configurado para organizar las subvistas. Si lo que estás haciendo no usa restricciones, tendrás que configurarNeedsLayout y luego layoutIfNeeded para forzar una actualización de diseño inmediatamente. – Toby