Die Größe von UILabel-Text wird mithilfe des automatischen Layouts nicht automatisch geändert

Ich versuche ein Constrained zu implementierenUITableViewCell Unterklasse und alles funktioniert einwandfrei, bis auf dieUILabel. Die Einschränkungen, die ich eingerichtet habe, werden definitiv durchgesetzt, aber der Text innerhalb der Beschriftung wird nicht auf eine kleinere Schriftgröße angepasst, wenn die Einschränkungen in Konflikt geraten. Stattdessen wird die Höhe des UILabel abgeschnitten und die Schrift bleibt gleich groß, dh die Buchstaben werden oben und unten abgeschnitten.

Gibt es eine Methode, die ich aufrufen muss, um dies zum Laufen zu bringen? Ich würde mir vorstellen, dass Auto-Layout klug genug ist, um die Schriftgröße automatisch zu ändern. Ich weiß also nicht, warum dies geschieht.

Relevanter 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];

Grundsätzlich sollen diese Einschränkungen eine Zelle erzwingen, in derotherView ist links,aTextField ist rechts vonotherView auf der gleichen y-Ebene, und das Etikett ist untenaTextField und rechts unten vonotherView.

Vielen Dank für jede Hilfe.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage