J'essaie d'implémenter une contrainte UITableViewCell
et tout fonctionne parfaitement, à l'exception de la sous-classe UILabel
. Les contraintes que j'ai mises en place sont bien appliquées, mais le texte à l'intérieur de l'étiquette n'est pas redimensionné à une taille de police plus petite lorsque les contraintes entrent en conflit. Au contraire, la hauteur de l'UILabel est tronquée et la taille de la police reste la même, ce qui signifie que les lettres sont coupées en haut et en bas.
Y a-t-il une méthode que je dois appeler pour que cela fonctionne ? Je pensais que la mise en page automatique serait suffisamment intelligente pour redimensionner automatiquement la taille de la police. Je ne comprends donc pas pourquoi cela se produit.
Code pertinent :
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 sont destinées à imposer une cellule dans laquelle otherView
est sur la gauche, aTextField
se trouve à droite de otherView
au même niveau y, et l'étiquette est en dessous de aTextField
et à droite du bas de otherView
.
Comme d'habitude, merci pour toute aide dans ce domaine.