使背景 UILabel 变大

Make background UILabel bigger

我在我的应用程序中有一个问题我有一个数字标签 (IBOutlet)。当我写 self.numberLabel.backgroundColor = [UIColor redColor]; 显示适合数字高度的红色时,我只想让背景变大一点。谢谢

您必须在 Interface Builder / Storyboard 中设置约束才能修复标签 height/width。
如果您的标签内容的宽度发生变化,您可以使用它来计算一个新的宽度,还剩一点 space:

float labelWidth =
    [self.myLabel.text
     boundingRectWithSize:self.myLabel.frame.size
     options:NSStringDrawingUsesLineFragmentOrigin
     attributes:@{ NSFontAttributeName:self.myLabel.font }
     context:nil]
    .size.width;

    CGRect rect = self.myLabel.bounds;
    rect.size.width = labelWidth + 15.0f; //replace 15.0F with the value you want
    [self.myLabel setBounds:rect];
self.numberLabel.frame = CGRectMake(self.numberLabel.frame.origin.x, self.numberLabel.frame.origin.y, widht, newHeight);

并确保字体在需要时保持相同大小

[self.numberLabel setFont:[UIFont systemFontOfSize:35]];

给猫剥皮的方法有很多...在我的例子中,"uilabel" 的内容决定了它的大小。我只想让背景稍微大一点——垂直 5 磅,水平 7 磅。所以我用autolayout来解决

  1. 添加一个uilabel作为背景的子视图,它是一个uiview
  2. uilabeluiview
  3. 之间的 IB 中添加约束
  4. uiview 及其父视图
  5. 之间的 IB 中添加约束