Expandiendo UIView como UILabel dentro crece

Tengo una UIView que es una vista de UIImageView de UIImageView y UILabel . UILabel puede tener diferentes tamaños dependiendo de la cantidad de text que contiene. Por lo tanto, necesito que UIView crezca y se achique junto con UILabel pero no puede hacerlo funcionar.

La captura de pantalla de cómo se ve es a continuación:

introduzca la descripción de la imagen aquí

Como puede ver, el espacio arriba y abajo de la label es demasiado grande. En el .xib configuré las restricciones superior e inferior en el UILabel para ser solo 10 pero aparentemente estas son violadas de algún modo. UIView tiene una restricción superior al marco anterior con la image como >=10 , de modo que puede crecer de 10 .

Puedes ver a continuación: .xib :

introduzca la descripción de la imagen aquí

Traté de boost la Content Hugging Priority de UIView Content Hugging Priority de UIView pero no ayuda. UILabel tiene solo 4 restricciones: arriba, abajo, izquierda, derecha en relación con su vista supervisa UIView . También he intentado cambiar la Content Hugging Priority de UILabel de Content Hugging Priority de UILabel relación con UIView pero no UIView éxito. UIImageView es el borde real de UIView que se muestra en la image.

¿Crees que te estás perdiendo?

Ver:

  • Restricción: Altura> = 20

Etiqueta:

  • Líneas: 0
  • Restricción: márgenes superior e inferior a la vista (super)
  • Restricción: Altura> = 10

Captura de pantalla de un ejemplo de trabajo:

introduzca la descripción de la imagen aquí

Consejo: usa la vista previa

Entonces, en mi caso, la solución fue establecer restricciones de UILabel relación con UIImageView y luego establecer la Content Compression Resistance Priority en 250 . Entonces todo comenzó a funcionar. Gracias matt Abrí su proyecto github y encontré que la Content Compression Resistance Priority de Content Compression Resistance Priority de UIImageView debería ser de 250 , esto era crucial.

Establezca la label en .sizeToFit (), o en InterfaceBilder el número de líneas a 0, y establezca el ancho máximo (ancho preferrado) o haga> = / <= restricciones. Como mi experiencia, tienes que jugar un poco con las limitaciones para que funcione, la vista previa en el editor auxiliar es muy útil en ese caso. Luego puede configurar el ancho / alto de las supervistas para que sea el mismo que la label y algunos para que sea más grande. Espero que esto funcione.