2 Stimmen

UILabel mit Text, der auf die Größe beschränkt ist, gibt die falsche Höhe zurück

Ich habe viele Fragen zu diesem Thema gelesen, aber anscheinend finde ich nicht, was mit meinem Code falsch ist:

UILabel *nameLabel = [[UILabel alloc] init];
[nameLabel setText: _nameString];

nameLabel.textAlignment    = UITextAlignmentLeft;
nameLabel.contentMode      = UIViewContentModeTop;
nameLabel.lineBreakMode    = UILineBreakModeWordWrap;
nameLabel.numberOfLines    = 0;
nameLabel.font             = [UIFont fontWithName:@"Verdana" size:14];
nameLabel.backgroundColor  = [UIColor clearColor];
nameLabel.textColor        = [UIColor colorWithRed:0 green:0.282 blue:0.31 alpha:1];
nameLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;

CGSize maximumLabelSize  = CGSizeMake(200.0f, 60.0f);
CGSize expectedLabelSize = [_nameString sizeWithFont:nameLabel.font
                                   constrainedToSize:maximumLabelSize 
                                       lineBreakMode:nameLabel.lineBreakMode];

nameLabel.frame = CGRectMake(10, 10, expectedLabelSize.width, expectedLabelSize.height);

Und obwohl es manchmal funktioniert (bei längeren Texten) bei Texten wie "Flugzeuge sind die Zukunft" gibt expectedLabelSize eine Höhe von 18.0f zurück und schneidet den Satz an "Flugzeuge sind die" ab

Was mache ich hier falsch?

1voto

Michael Pirotte Punkte 272

Ich hatte einmal dasselbe Problem, das lag daran, dass die Breite meines Labels kleiner war als die maximale Label-Breite, die ich verwendet habe, um die "erwartete Label-Größe" zu berechnen.

Da du eine autoresizingMask verwendest, könnte dein Label zu klein sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X