web-dev-qa-db-fra.com

UIView avec UILabel multiple de hauteur dynamique

Je crée une UIView personnalisée avec 2 UILabel, chaque UILabel ayant une hauteur dynamique. Je ne peux pas définir de contraintes pour la hauteur dynamique. (Je suis nouveau dans la mise en page automatique et les trucs iOS).

Les deux UILabels sont connectés l'un à l'autre par le haut et le bas et sont alignés horizontalement sur la vue d'ensemble. Et lorsque je modifie le contenu de l'un des UILabel, UIView et UILabel ne redimensionne pas comme requis.

Veuillez suggérer. Joindre des captures d'écran pour les contraintes actuelles.

11
cheeseRoot

J'ai fait une démo pour vous selon vos besoins. Téléchargez-le à partir du lien ci-dessous,

redimensionner automatiquement UIView et UILabel

Guide étape par étape: -

Étape 1: - Définissez la contrainte sur UIView

1) En tête 2) En haut 3) En fin de ligne (vue principale)

enter image description here

Étape 2: - Définissez la contrainte sur l'étiquette 1

1) En tête 2) En haut 3) En fin de ligne

enter image description here

Étape 3: - Définissez la contrainte sur l'étiquette 2

1) En tête 2) En haut 3) En fin de ligne

enter image description here

Étape 4: - Le plus délicat donne le bas à UILabel d'UIView.

Dans Xcode 10 et supérieur - Sélectionnez votre UIView et votre étiquette après cela dans la section Align Constraint, sélectionnez la contrainte Bottom Edges.

enter image description here

enter image description here

Étape 5: - (Facultatif) Définissez la contrainte sur UIButton

1) avant 2) bas 3) arrière 4) hauteur fixe (vue principale)

enter image description here

Sortie: -

enter image description here

Remarque: - Assurez-vous d'avoir défini Nombre de lignes = 0 dans la propriété Label.

enter image description here

Edit1: - Si vous souhaitez augmenter la taille avec BottomConstrain (> =) veuillez vérifier ci-dessous Image.

enter image description here

J'espère que ces informations suffisent pour comprendre Autoresize UIView selon la hauteur de UILabel et Autoresize UILabel selon le texte.

68
Badal Shah
  1. Définissez la propriété Lines des deux étiquettes sur 0 dans le générateur d'interface.
  2. Assurez-vous qu'il n'y a pas de contrainte pour la hauteur des étiquettes ou de l'uiview.
  3. Assurez-vous qu'il n'y a pas de contraintes sur uiview qui le forcent à une certaine taille, par exemple, si vous avez une contrainte sur uiview pour une certaine distance du haut de la superview et une autre contrainte d'une certaine distance du bas de la superview, cela ne fonctionnera pas.
  4. Essayez de changer le texte des étiquettes dans le code et la hauteur devrait s'ajuster automatiquement.
1
Kashif