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

标签 iphone objective-c ios uiimage uilabel

我有一个简单的基于 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];

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

enter image description here

在这张图片中重复了 3 次。但我希望该图像应该被拉伸(stretch)以填充标签宽度。

我引用了之前的一些链接,这些链接显示我在后台添加图像并使用 clearColor 作为 UILabel。还看到了在后台添加自定义 View 的示例。但是我不想使用所有这些,除非我没有其他解决方案......

我只想在 UILabel 上执行所有操作......除了 UIImageUIImageView 我不想使用其他控件。 .

最佳答案

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];

我已经测试了这段代码。

关于iphone - 如何拉伸(stretch)图像以填充 UILabel 背景中设置的标签宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8634083/

相关文章:

iphone - 将图像保存到默认相机文件夹 - IOS

ios - 使用 AVFoundation 录制视频

iphone - 除非您放大或移动 map ,否则 MapView 不会重新加载注释

objective-c - 试图将整数转换为NSNumber-改为获取奇怪的数字

iOS 8 和触控 ID

ios - 可变的构图,向带有帧的视频中添加音频时失去方向

ios - 无法在新的 Apple Web 界面下编辑配置文件

ios - 真正的随机 Xcode

ios - 自定义 UITableView 部分标题,奇怪的行为

iphone - 如何在我的应用程序代码中拦截框架的日志消息?