我有简单的基于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];
评论显示了我尝试过的一些事情。我得到以下输出:
在这一个图像中重复3次。但我希望拉伸图像以填充标签宽度。
我已经提到了一些以前的链接,这些链接显示我在后台添加了图片,并使用clearColor
作为UILabel
。还可以看到在后台添加自定义视图的示例。但除非我没有其他解决方案,否则我不想使用这一切......
我只想在UILabel
上执行所有操作....除了我想使用的UIImage
或UIImageView
之外没有其他控件..
答案 0 :(得分: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];
我已经测试了这段代码。
答案 1 :(得分:1)
移植Maulik对Swift 2.2的回答,您将获得以下代码:
var img: UIImage = UIImage(named: "cabImage")!
var imgSize: CGSize = testLabel.frame.size
UIGraphicsBeginImageContext(imgSize)
img.drawInRect(CGRectMake(0, 0, imgSize.width, imgSize.height))
var newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();
testLabel.backgroundColor = UIColor(patternImage: newImage)
亲自测试工作!