缩小 uilabel 背景以适应分配的空间

Posted

技术标签:

【中文标题】缩小 uilabel 背景以适应分配的空间【英文标题】:shrink uilabel background to fit allotted space 【发布时间】:2014-08-06 18:47:10 【问题描述】:

要设置我的 UILabel 的背景,我使用

theLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blah"]];

现在我的问题是背景图像实际上大于我的 UILabel 的大小。有没有简单的方法让背景缩小到UILabel的大小?

【问题讨论】:

【参考方案1】:

这就是我最终弄明白的方法

- (void)reziseLabelBackgound

    UIImage *rawImage = [UIImage imageNamed:@"blah"];
    CGSize bkgSize = self.myLabel.bounds.size;
    UIGraphicsBeginImageContext(bkgSize);
    [rawImage drawInRect:CGRectMake(0,0,bkgSize.width,bkgSize.height)];
    UIImage *bkgImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.myLabel.backgroundColor = [UIColor colorWithPatternImage:bkgImage];

【讨论】:

啊,我只是在写如何在矩形中绘制图像。很好的收获。【参考方案2】:

编辑 - 被误解的问题。

不,标签无法做到这一点。您可能需要使用透明标签,其下方有一个 UIImageView,其大小与标签相同,并将 contentMode 设置为您需要的值。

【讨论】:

以上是关于缩小 uilabel 背景以适应分配的空间的主要内容,如果未能解决你的问题,请参考以下文章

调整 UILabel 的大小以适应插图

自定义 uitableViewcell 内部:UILabel 背景超出文本长度(以编程方式)

旋转UIView并使其更改视图大小以适应相对于旋转的空间

扩展视图框以获得更多绘图区域,并且 SVG 不会缩小以适应容器

自动布局以动态调整 UILabel 大小不起作用

如何使 HTML 表格中的一列缩小以适应?