带文本约束的UILabelToSize返回错误的高度

时间:2012-01-18 11:43:38

标签: ios uilabel

我已经阅读了很多关于这个主题的问题,但我似乎无法找到我的代码有什么问题:

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);

虽然有时候它(在较大的文本上)对“飞机是未来”这样的文本起作用,expectedLabelSize返回高度18.0f并且它在“飞机就是”中削减了句子

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我曾经遇到过同样的问题,那是因为我的标签宽度小于我用来计算“expectedLabelSize”的最大标签宽度值。

由于您使用的是autoresizingMask,因此您的标签可能太小了。