如何防止sizeToFit更改UILabel宽度?

Pet*_*art 6 objective-c width uilabel ios

我现在有一个UILabel,UILabel.text值会定期更改.

我遇到的问题是,如果每次UILabel.text值更改,UILabel宽度将根据标签的内容而更改.

我怎样才能解决这个问题?这是我现在的代码:

outputLabel.text = errorMessage;
outputLabel.hidden = NO;
[outputLabel sizeToFit];
Run Code Online (Sandbox Code Playgroud)

更新 我使用sizeToFit的原因是因为我需要自动更改高度.

谢谢,

彼得

Man*_*anu 7

您可以创建UILabel的类别或子类,并添加此方法以根据输入文本仅调整标签的高度

- (void)heightToFit {

    CGSize maxSize = CGSizeMake(self.frame.size.width, CGFLOAT_MAX);
    CGSize textSize = [self.text sizeWithFont:self.font constrainedToSize:maxSize lineBreakMode:self.lineBreakMode];

    CGRect labelRect = self.frame;
    labelRect.size.height = textSize.height;
    [self setFrame:labelRect];
}
Run Code Online (Sandbox Code Playgroud)

并使用它代替sizeToFit