将背景图像添加到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")!)