Добавление фонового изображения в UILabel - PullRequest
50 голосов
/ 14 июня 2010

Как добавить фоновое изображение в UILabel в приложении для iPhone. Я пытался сделать это через IB, но безрезультатно.

Ответы [ 5 ]

146 голосов
/ 14 июня 2010

Попробуйте сделать это с кодом:

Objective-C:

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

Swift:

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

Или поместите UIImageView за меткой (не рекомендуется).


Обновление: размещение UIImageView за меткой не рекомендуется, поскольку тогда вам придется управлять двумя представлениями.Но если вы должны сделать что-то, что может сделать только UIImageView, это все еще хороший подход.Я подозреваю, что таким образом ваше приложение будет работать лучше.

18 голосов
/ 15 сентября 2013

, если вы хотите, чтобы изображение растягивалось до ширины метки попробуйте этот код.

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];
0 голосов
/ 27 апреля 2019
 let messageBackgroundView = UIImageView()
        messageBackgroundView.image = UIImage(named: "chat-background")
        if messageBackgroundView.superview != lblChatdata.superview {
            lblChatdata.superview!.insertSubview(messageBackgroundView, belowSubview: lblChatdata)
            messageBackgroundView.translatesAutoresizingMaskIntoConstraints = false
            NSLayoutConstraint.activate([
                messageBackgroundView.leadingAnchor.constraint(equalTo: lblChatdata.leadingAnchor),
                messageBackgroundView.trailingAnchor.constraint(equalTo: lblChatdata.trailingAnchor),
                messageBackgroundView.topAnchor.constraint(equalTo: lblChatdata.topAnchor),
                messageBackgroundView.bottomAnchor.constraint(equalTo: lblChatdata.bottomAnchor),
                ])
            messageBackgroundView.contentMode = .scaleAspectFill
        }
0 голосов
/ 24 мая 2016

@ pixelfreak, ваше право.Экземпляр UIColor с цветным рисунком изображения имеет серьезные проблемы с производительностью при назначении его backroundcolor

cell.cellLabel.backgroundColor = UIColor(patternImage: UIImage(named: "background")!)
0 голосов
/ 12 апреля 2016

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...