ios - ¿Dónde está la casilla de verificación de Xcode "Traduce la máscara autoresante a restricciones"
ios autolayout programmatically (1)
Esa casilla de verificación está disponible en Interface Builder (IB), pero solo si está desarrollando proyectos Cocoa dirigidos a OS X. Para iOS, actualmente no está disponible. Solo puedes configurarlo programáticamente.
Según mis conocimientos, Auto Layout en iOS, y otros que no duden en colaborar aquí, no es una implementación completa de lo que está disponible en OS X.
Para ser honesto, dado lo que dices después, esta casilla de verificación es probablemente algo de lo que no debes preocuparte. Creo que es importante actualizar los proyectos de OS X a Auto Layout, pero en general para iOS es poco probable que se mezclen uno y otro. Es decir, puede marcar su Xib en el inspector de archivos para "Usar Autolayout" o no.
Dicho esto, hay un caso de uso en el que puede que tenga que meterse con esa bandera. Eso es si desea crear un archivo Xib independiente para una vista y luego cargarlo mediante programación con loadNibNamed
. Al hacerlo, de forma predeterminada, las restricciones de redimensionamiento automático del antiguo estilo se convierten en nuevas restricciones de diseño automático de estilo. Por lo general, quiero agregar el mío, así que configuro esa bandera para que los descargue.
myView.translatesAutoresizingMaskIntoConstraints = NO
De todos modos esa es otra historia.
Aquí está el enlace para obtener más información, aunque sin duda ya lo has visto:
Una cosa que diría es que si estás luchando con Auto Layout al principio, y no serías humano si no lo fueras, todos lo hemos sido, entonces me quedo con Interface Builder y pienso en el reglas de oro. Lo más importante para mí es que odia la ambigüedad. Es como un vacío en la naturaleza. Antes de que pueda eliminar la restricción que no desea , debe agregar la que desea y luego eliminar la anterior.
El otro error que cometí fue mezclar Auto Layout y marcos. Así que haría un código que verificara el ancho del marco y luego lo aplicaría a las restricciones. Mal error. Eso realmente termina en lágrimas. Cuando entras en Auto Layout, es esencial que realmente te olvides de hacer cualquier cosa con CGRect
, frame
, etc.
Quédate con eso sin embargo. Comience con algunas vistas simples en IB y experimente. Hay método para la locura, de verdad.
Un enlace más que también vale la pena mirar es:
En uno de los videos de la WWDC 2012, Auto Layout By Example, muestran una aplicación OS X usando Autolayout, y en aproximadamente 7 u 8 minutos, muestra cómo, para una sola vista, puede desmarcar una casilla en el inspector de atributos, y el cuadro se llama algo así como "Traduce la máscara de autoresizing a restricciones" . Ahora, conozco bien el código equivalente a este cuadro, el traductorAutoresizingMaskIntoConstraints boolean, pero parece que no puedo encontrar esta casilla de verificación en ningún lugar, ya sea en proyectos iOS o OS X. Mi proyecto usa Autolayout. Realmente me gustaría esta casilla de verificación, porque una de las cosas con las que me cuesta aprender a usar Autolayout (y convertir una aplicación de resortes / puntales en AL) es el millón de restricciones que Xcode ha generado para cada vista, y cómo limpiarlas y anularlas con sensatez. algunos / todos en codigo Lo que me gustaría para hacer esta conversión una vista a la vez es desactivar esas restricciones generadas automáticamente.
¿Por qué no puedo ver esta casilla de verificación? Estoy usando Xcode 4.6.