使背景 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来解决
- 添加一个
uilabel
作为背景的子视图,它是一个uiview
- 在
uilabel
和 uiview
之间的 IB 中添加约束
- 在
uiview
及其父视图 之间的 IB 中添加约束
我在我的应用程序中有一个问题我有一个数字标签 (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来解决
- 添加一个
uilabel
作为背景的子视图,它是一个uiview
- 在
uilabel
和uiview
之间的 IB 中添加约束
- 在
uiview
及其父视图 之间的 IB 中添加约束