2013-08-08 4 views
1

Я видел много вопросов в stackoverflow с той же проблемой, но ни одно из решений не помогло мне. Я использовал следующий код, чтобы установить собственное изображение в качестве фона метки:Невозможно установить изображение в качестве фона UILabel

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; 

Но никто из них не похоже, работает, как хорошо. Есть ли вообще выход из этого?

+0

Вы проверили, был ли ваш 'labelBackgroundImageSize' {0, 0, 0, 0} перед рисованием? – liuyaodong

ответ

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]; 

EDIT: Я попробовал ваш код и он прекрасно работает! Вы отметили, что значение myLabel.frame.size не равно нулю?

Смежные вопросы