Si una vista está configurada en IB con Diseño automático, ¿qué sucede si intenta cambiar su marco mediante progtwigción?

Un proyecto en el que he comenzado a ayudar no utilizó Auto Layout antes y lo estoy actualizando para usar Auto Layout y classs de tamaño. Hay una cantidad decente de código de manipulación de ttwigs en toda la aplicación (p. Ej., Marco de configuration directamente en lugar de cambiar las constantes de restricción), y me pregunto cómo afecta esto a una vista configurada con restricciones de layout automático.

Estoy trabajando para eliminar las partes que cambian de marco del código y cambiarlo para actualizar las constantes de restricción cuando sea necesario, pero como todavía no estoy 100% familiarizado con la forma en que funciona cada pieza del código, sería útil tener una mejor comprensión de cómo el layout automático y los cambios de marco codificados se pueden afectar entre sí, de modo que si una vista no aparece correctamente en time de ejecución, puedo determinar mejor si es algo que configuré o quizás un código antiguo en alguna parte que necesite ser encontrado y actualizado

Es muy sencillo. Solo debes entender qué layout automático tiene .

Así es como funciona. Las restricciones son solo una list de instrucciones; ellos, por sí mismos, en realidad no hacen nada en absoluto. Hay un layoutSubviews post del sistema, que se envía en momentos que no controla, por lo que debería imaginar que podría enviarse en cualquier momento. Cuando se envían layoutSubviews , las restricciones son consultadas y obedecidas (haciendo exactamente lo que haría, es decir, el time de ejecución establece el frame o los bounds y el center de cada vista).

Por lo tanto, puede cambiar el frame de una vista, pero tenga en count que si se envían layoutSubviews y las restricciones no están de acuerdo con el frame que configuró, la vista volverá a donde las restricciones dicen.