Le texte UILabel n'est pas automatiquement redimensionné à l'aide de la mise en page automatique
Je suis en train de mettre en œuvre une contrainte UITableViewCell
sous-classe, et tout fonctionne parfaitement, sauf pour les UILabel
. Les contraintes que j'ai mis en place sont certainement en cours d'exécution, mais le texte à l'intérieur de l'étiquette n'est pas redimensionnée à la taille de la police lorsque les contraintes de choc. Au lieu de cela, la hauteur de la UILabel obtient tronqué et la police reste la même taille, la signification des lettres coupé en haut et en bas.
Est-il une méthode que j'ai appeler pour obtenir que cela fonctionne? Je pense à Disposition Automatique serait assez intelligent pour redimensionner automatiquement la taille de la police, donc je suis un peu perdu pour expliquer ce qui se passe.
Code:
self.label = [[UILabel alloc] initWithFrame:CGRectZero];
self.label.textColor = [UIColor whiteColor];
self.label.translatesAutoresizingMaskIntoConstraints = NO;
self.label.textAlignment = NSTextAlignmentCenter;
self.label.numberOfLines = 1;
[self.contentView addSubview:self.label];
NSLayoutConstraint *otherViewToLabelHorizontalConstraint = //Make sure that the label is always to the right of the other view.
[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.otherView
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0.0];
NSLayoutConstraint *aTextFieldToLabelVerticalConstraint =
[NSLayoutConstraint constraintWithItem:self.label
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationGreaterThanOrEqual
toItem:self.aTextField
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:0.0];
Fondamentalement, ces contraintes visent à faire respecter une cellule où otherView
est sur la gauche, aTextField
est sur la droite de otherView
à la même y-niveau, et l'étiquette est en dessous de aTextField
et à droite de la partie inférieure de otherView
.
Comme d'habitude, merci pour toute aide à ce sujet.
source d'informationauteur J Kagney
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin
Puis l'étiquette de la taille de la police sera automatiquement ajusté.
Avec la constitution de
adjustsFontSizeToFitWidth
et laminimumScaleFactor
vous devez également définir la compression du contenu de l'étiquette ont une faible priorité. Découvrez la "Résistance à la Compression et le Contenu de caresser la section de ce objc.io essai. En fait, si votre étiquette a un faible niveau de résistance à la compression de la priorité que le reste de la contrainte, l'étiquette doit redimensionnée:J'ai résolu ce problème en définissant une largeur requise de la contrainte à la vue j'ai été liant l'étiquette.
Et assurez-vous que la priorité pour que cette contrainte est définie à UILayoutPriorityRequired.
Texte a été redimensionnement lors de l'épinglage de l'étiquette à la superview, mais pas pour le textfield, donc j'en ai déduit, il doit y avoir un problème avec intrinsèques tailles des éléments impliqués dans la mise en page de calcul de l'étiquette de la largeur finale.