Adding Background image to UILabel Adding Background image to UILabel ios ios

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)