ios xcode ios6 xcode4.5 autolayout

ios - Dónde establecer traduceAutoresizingMaskIntoConstraints en Xcode 4.5



ios6 xcode4.5 (4)

Necesito establecer translatesAutoresizingMaskIntoConstraints a NO . De manera predeterminada, está establecido en YES (para ayudar con la mayoría de las aplicaciones que están en transición desde los puntales y muelles al nuevo diseño automático).

¿Hay algún lugar en Xcode donde se pueda cambiar el valor predeterminado de YES a NO ?

¿O tengo que configurarlo manualmente para cada vista?


Cuando tiene que cambiar el tamaño o la posición de su subvista. Use (BOOL)translatesAutoresizingMaskIntoConstraints métodoAutoresizingMaskIntoConstraints antes de establecer el marco de su subvista.

[self.benchmarkButton removeFromSuperview]; [self.benchmarkButton setTranslatesAutoresizingMaskIntoConstraints:YES]; [self.benchmarkButton setFrame:CGRectMake(20, self.benchmarkButton.frame.origin.y+40, 260, 30)]; [self.benchmarksView addSubview:self.benchmarkButton];

Es por eso que su subvista no luchará contra las restricciones ya que está predeterminada (AutoLayout) en Xcode 4.3 y posterior. Gracias



Esta es una gran pregunta, y una que he tratado de encontrar una respuesta para mí. Lamentablemente, parece que no hay una "solución rápida". Actualmente, Apple considera Opt-in de diseño basado en Restricción, incluso nombrando una sección de la Referencia de Clase UIView :

Optar por el diseño basado en restricciones

Pero ese Opt-in no es global. Supongo que esto se debe a que no todo se ve bien si solo se convierten Springs & Struts en Restricciones. Algunos elementos de la interfaz de usuario se rompen, o obtendría una tonelada de errores de restricciones insatisfactorias.

Puedo pensar en una posible solución: no la he probado yo mismo, pero podrías hacer una categoría en UIView que establezca todos los objetos UIView para que devuelvan NO para - (BOOL)translatesAutoresizingMaskIntoConstraints UIView en las UIView . Si bien no sé lo que esto podría romperse, se establecería globalmente translatesAutoresizingMaskIntoConstraints a NO .

¡Aquí hay una buena introducción a las categorías si desea obtener más información sobre ellas !


Llegué tarde a esta pregunta, pero la opción mencionada aún falta en Xcode 5 y 6, por lo que la pregunta sigue siendo significativa.

En realidad, siempre podemos establecer un valor para cualquier propiedad de una vista / control / objeto agregando un Atributo de tiempo de ejecución definido por el usuario en Storyboard (Interface Builder) como la siguiente captura de pantalla.

Y también funciona para traduceAtlasizing At MasConstraints . Entonces la pregunta podría ser resuelta.