将背景图像添加到UILabel

如何在iPhone应用程序中将背景图像添加到UILabel中。 我试图通过IB来做,但没有结果。

尝试使用代码:

Objective-C的:

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

迅速:

 theLabel.backgroundColor = UIColor(patternImage: UIImage(named: "blah")!) 

或者将UIImageView放置在标签后面(不推荐)。


更新:不build议将UIImageView放置在标签后面,因为那样您将不得不pipe理两个视图。 但是,如果你必须做一些只有UIImageView可以做到的事情,这仍然是一个好方法。 我怀疑你的应用程序将会以这种方式运行得更好。

如果你想要这个图像应该被拉伸来填充标签的宽度。 试试这个代码。

 UILabel *myLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 20)]; UIImage *img = [UIImage imageNamed:@"a.png"]; CGSize imgSize = myLabel.frame.size; UIGraphicsBeginImageContext( imgSize ); [img drawInRect:CGRectMake(0,0,imgSize.width,imgSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); myLabel.backgroundColor = [UIColor colorWithPatternImage:newImage]; 

Swift 2.2:使用背景色设置背景图片

  UIGraphicsBeginImageContextWithOptions(stationNameLabel.frame.size, false, 0.0) let context = UIGraphicsGetCurrentContext(); let components = CGColorGetComponents(color.CGColor) CGContextSetRGBFillColor(context, components[0], components[1], components[2], 0.4); CGContextFillRect(context, CGRectMake(0.0, 0.0, stationNameLabel.frame.size.width, stationNameLabel.frame.size.height)); targetImage.drawInRect(CGRectMake(0.0, 0.0, stationNameLabel.frame.size.width, stationNameLabel.frame.size.height)) let resultImage: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() label.backgroundColor = UIColor(patternImage: resultImage) 

@pixelfreak,你的权利。 使用彩色图像模式的UIColor实例在将其分配给backroundcolor时存在严重的性能问题

 cell.cellLabel.backgroundColor = UIColor(patternImage: UIImage(named: "background")!)