【问题标题】:Can't set image as the background of UILabel无法将图像设置为 UILabel 的背景
【发布时间】:2013-08-08 08:01:44
【问题描述】:

我在 stackoverflow 中看到了很多相同问题的问题,但没有一个解决方案对我有帮助。我使用以下代码将自定义图像设置为标签的背景:

labelBackgroundImageOriginal = [UIImage imageNamed:@"paper.jpg"];
labelBackgroundImageSize = myLabel.frame.size;    
UIGraphicsBeginImageContext(labelBackgroundImageSize);
[labelBackgroundImageOriginal drawInRect:CGRectMake(0, 0, labelBackgroundImageSize.width, labelBackgroundImageSize.height)];    
labelBackgroundImageNew = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
myLabel.backgroundColor = [UIColor colorWithPatternImage:labelBackgroundImageNew];

但标签背景仍然是白色的,图像没有显示出来。然后我尝试了在不同问题下给出的各种解决方案,如下所示:

myLabel.backgroundColor = [UIColor clearColor];
myLabel.opaque = NO;

但它们似乎都没有正常工作。真的有办法解决吗?

【问题讨论】:

  • 你在画画之前检查过你的labelBackgroundImageSize是不是{0, 0, 0, 0}吗?

标签: objective-c uilabel uicolor


【解决方案1】:

您是否尝试将[UIColor colorWithPatternImage:] 直接用于您的图像?对我来说效果很好。

UILabel *test = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 300, 100)];
test.text = @"TEST";
test.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"anyPicture"]];
[self.view addSubview:test];

编辑:我已经试过你的代码,它工作正常!你检查过myLabel.frame.size 的值是否不为空吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多