¿Pueden las subvistas cambiar el tamaño de su supervisión automáticamente con layout automático?

Si tiene una vista sin restricciones, y esa vista tiene una subvista con restricciones de izquierda, derecha, superior e inferior de igual tamaño, si el tamaño de la subvista aumenta, es posible que el tamaño de la vista supervisa aumente automáticamente para adaptarse a estas restricciones ?

Gracias.

Sí, puedes hacer eso, y se puede hacer sin ningún código o subclass. Por ejemplo, si tiene una label incrustada en una vista (con numberOfLines = 0), y tiene restricciones para todos los lados de la supervisión, así como también una restricción de ancho, la label y su supervisión se expandirán verticalmente si usted coloque una string grande en la label. La supervista aún debe tener algunas restricciones, como una en la parte superior e izquierda de su supervisión, pero no hay limitaciones de tamaño.

Esto se puede hacer si la supervisión es una subclass personalizada de UIView. Puede anular IntrinsicContentSize para devolver un tamaño relacionado con el tamaño de su súper vista. Luego, cuando cambia el tamaño de la subvista, puede invalidar el tamaño de contenido intrínseco. Normalmente hago esto en la parte layoutSubviews de la supervisión.