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:
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
:
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:
Etiqueta:
Captura de pantalla de un ejemplo de trabajo:
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.