Adding Background image to UILabel
Try doing it with code:
Objective-C:
theLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blah"]];
Swift:
theLabel.backgroundColor = UIColor(patternImage: UIImage(named: "blah")!)
Or place an UIImageView
behind the label (not recommended).
Update: placing an UIImageView behind a label was not recommended because then you would have to manage two views. But if you must do something that only an UIImageView can do this is still a good approach. I suspect that your app will actually run better this way.
if you want that image should be stretched to fill the Label width.try this code.
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: set the Background image with background color
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)