1

J'utilise un UILabel dans un UITableViewCell pour afficher un titre. Normalement, le texte n'est pas trop long et la taille de la police peut donc être grande. Notez comment le texte remplit la hauteur du UILabel comme d'habitude.UIL'étiquette en fonction de la taille de la police

enter image description here

Cependant, quand il y a un titre plus grand, je veux la hauteur UILabel pour réduire à adapter la taille de police plus petite et ne pas laisser un espace vide à sa place. Actuellement, ma configuration produit cet effet.

enter image description here

J'utilise des contraintes dans mon story-board et ont délibérément pas une contrainte de hauteur fixe. Voici les contraintes pertinentes ajoutées:

enter image description here

je peut avoir fait une erreur de recrue dans ma configuration que je ne me souviens pas cet effet qui se passe avant, mais il me donne de véritables maux de tête (et une mauvaise interface utilisateur recherche).

+0

En fonction des autres contraintes sur les autres sous-vues, vous pouvez ajuster la priorité d'étreinte du contenu vertical. Augmentez le sur l'étiquette. – jervine10

+0

@ jervine10 L'étiquette de titre a la plus haute priorité d'étreinte du contenu vertical par rapport aux autres sous-vues. –

Répondre

0

Lorsque UILabel est réglé sur la taille de la police auto-ajuster à, ne pas automatiquement ajuster la hauteur de lui-même.

Vous avez un couple d'options:

  1. jeu de base pour aligner les centres, et juste accepter que vous aurez un rembourrage en haut et en bas

  2. utiliser le code pour calculer la « taille de la police à l'échelle » et mettre à jour la taille de police de l'étiquette

0

Supprimez les contraintes Top Space ou Bottom Space (en fonction de l'emplacement d'ancrage de l'étiquette).

Cela entraînera l'utilisation automatique de l'étiquette pour s'adapter à la taille du texte.

+0

Mais alors, comment est-ce que ma vue de table connaissait la hauteur de laquelle afficher la ligne? –

+0

Vous pouvez définir 'rowHeight' dans le code ou Interface Builder. Si vous avez besoin d'une hauteur de ligne différente pour chaque ligne en fonction du contenu de la cellule, vous pouvez utiliser la méthode ['heightForRowAt:'] (https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614998-tableview) de UITableViewDelegate ' – Paolo

+0

Je veux utiliser le UITableViewAutomaticDimension préféré que j'ai configuré. –

0

Essayez et voir, il devrait fonctionner selon vos besoins:

enter image description here

Set Top et les contraintes de fond d'attributs Greater Than or Equal To et ajoutez centre horizontal (Alight Centre Y Superview) et spectacle dans cette image.