ios xcode autolayout uistoryboard size-classes

ios - ¿Cómo restablezco los datos de una clase de tamaño específico en un guión gráfico en Xcode6?



autolayout uistoryboard (2)

XCODE7 ...

Tuve un problema similar con las imágenes agregadas mientras que en Ancho normal (en lugar de "Cualquiera") no aparecía cuando lo cambiaba al tamaño "siempre que sea".

Encontré en el archivo Main.storyboard, cuando se ve como código en lugar de visualmente, una sección para la vista en cuestión de la siguiente manera:

<variation key="default"> <mask key="subviews"> <exclude reference="bQ8-Fl-U5l"/> <exclude reference="eyq-ch-Aan"/> <exclude reference="pm5-gT-AYv"/> <exclude reference="LJc-xi-hYb"/> <exclude reference="y0y-l5-aTs"/> <exclude reference="cLR-e1-OJo"/> </mask> <mask key="constraints"> </mask> </variation> <variation key="widthClass=regular"> <mask key="subviews"> <include reference="bQ8-Fl-U5l"/> <include reference="eyq-ch-Aan"/> <include reference="pm5-gT-AYv"/> <include reference="LJc-xi-hYb"/> <include reference="y0y-l5-aTs"/> <include reference="cLR-e1-OJo"/> </mask>

Parece que la sección se refiere al caso "Any-Any" y se refiere a la clase de tamaño específica con la que estaba jugando (siendo Regular Width, Any Height).

Para solucionarlo, BORRUE los elementos EXCLUIDOS de la sección predeterminada y ELIMINÉ estas mismas entradas que se agregaron a la sección normal. Esa sección del código entonces se ve como ...

<variation key="default"> <mask key="subviews"> </mask> <mask key="constraints"> </mask> </variation> <variation key="widthClass=regular"> <mask key="subviews"> </mask>

Parece arreglarlo. Whacky, ¿eh?

Estoy usando clases de tamaño para crear un guión gráfico que puede orientar todos los diferentes tamaños de pantalla y orientaciones. He estado trabajando en la clase de tamaño Any Width-Any Height. Me encontré con un problema de pantalla y decidí hacer esos cambios en la clase de tamaño Compact Height - Height Height. En un momento posterior, pude resolver mi problema de diseño haciendo cambios de restricción a la clase de tamaño Any Width-Any Height. ¿Cómo puedo revertir los cambios realizados en la clase de tamaño Compact Height - Height Height para que se use la clase de tamaño Any Width-Any Height en tiempo de ejecución sin revertir manualmente los cambios?


Tuve un problema similar cuando edité algunas restricciones para el iPad en la clase de tamaño incorrecto (Cualquier ancho - Altura normal en lugar de Ancho normal - Altura normal) y terminó arruinando el diseño de Portrait iPhone. Terminé editando Base.lproj/Main.storyboard y cambié las entradas correspondientes de <variation> para mover las restricciones a la clase de tamaño adecuada (en mi caso, desde <variation key="heightClass=regular" ..> hasta <variation key="heightClass=regular-widthClass=regular ...> . Debe haber una mejor manera de hacerlo, pero este truco rápido resolvió mi problema en esa ocasión. Para eliminar variaciones, eliminar las entradas de variación correspondientes debería funcionar (pero asegúrese tienes una copia de seguridad en caso de que algo salga mal).