如何拉伸图像以填充UILabel中背景中设置的标签宽度?

DSh*_*hah 4 iphone objective-c uiimage uilabel ios

我有简单的基于View的应用程序.我只接受UILabel了它.

以下是我在viewDidLoad中的代码:

lblBack.textColor = [UIColor blueColor];

UIImage *img = [UIImage imageNamed:@"cn3.png"];
lblBack.backgroundColor = [UIColor colorWithPatternImage:img];
lblBack.text = @"Hello World!!!...";

//    UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
//    
//    CGRect rect = CGRectMake(0, 0, lblBack.frame.size.width, lblBack.frame.size.height);
//    [imgView setFrame:rect];
//    NSLog(@"Rect : %@",NSStringFromCGRect(rect));
//    [img drawInRect:rect];
//    imgView.contentMode = UIViewContentModeScaleAspectFill;
//    imgView.contentMode = UIViewContentModeScaleAspectFit;
//    imgView.contentMode = UIViewContentModeScaleToFill;
//    [lblBack addSubview:imgView];
Run Code Online (Sandbox Code Playgroud)

评论显示了我尝试过的一些事情.我得到以下输出:

在此输入图像描述

在这一个图像中重复3次.但我希望拉伸图像以填充标签宽度.

我已经介绍了一些以前的链接,它们向我展示了在后台添加Image并clearColor用于UILabel.还可以看到在后台添加自定义视图的示例.但除非我没有其他解决方案,否则我不想使用这一切......

我只是想只执行所有的事情UILabel......没有其他控制,除了UIImageUIImageView我想使用..

Mau*_*lik 20

Dhiren试试这段代码:

    UIImage *img = [UIImage imageNamed:@"cab.png"];
    CGSize imgSize = testLabel.frame.size;

    UIGraphicsBeginImageContext( imgSize );
    [img drawInRect:CGRectMake(0,0,imgSize.width,imgSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    testLabel.backgroundColor = [UIColor colorWithPatternImage:newImage];
Run Code Online (Sandbox Code Playgroud)

我测试了这段代码.