无法将图像设置为UILabel的背景

时间:2013-08-08 08:01:45

标签: objective-c uilabel uicolor

我在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;

但它们似乎都没有起作用。实际上是否有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

您是否尝试直接在图片上使用[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值是否为空?