从两个UIImages和标签创建UIImage

4
我有一个大的UIImage。在这个UIImage上面,我又放了一个掩模。再加上一个UILabel,用于展示图片的文字内容。
我想将所有这些部分合并成一个UIImage,保存到相册中!
该如何实现呢?
更新:如何添加UITextView
我找到了以下信息:
[[myTextView layer] renderInContext:UIGraphicsGetCurrentContext()];

但是这种方法没有把myTextView放在正确的位置。
1个回答

10

创建两个UIImage对象和一个UILabel对象,然后使用drawInRect:方法。

//create image 1

UIImage *img1 = [UIImage imageNamed:@"image1.png"];

//create image 2    

UIImage *img2 = [UIImage imageNamed:@"image2.png"];

// create label

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50,50 )];

//set you label text

[label setText:@"Hello"];

// use UIGraphicsBeginImageContext() to draw them on top of each other

//start drawing
UIGraphicsBeginImageContext(img1.size);

//draw image1

[img1 drawInRect:CGRectMake(0, 0, img1.size.width, img1.size.height)];

//draw image2

[img2 drawInRect:CGRectMake((img1.size.width - img2.size.width) /2, (img1.size.height- img2.size.height)/2, img2.size.width, img2.size.height)];

//draw label

[label drawTextInRect:CGRectMake((img1.size.width - label.frame.size.width)/2, (img1.size.height - label.frame.size.height)/2, label.frame.size.width, label.frame.size.height)];

//get the final image

UIImage *resultImage  = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

resultImage是一个UIImage,包含了所有图片和标签的合成图像。之后你可以将其保存在任何地方。

希望能有所帮助...


1
我应该如何绘制UITextView?没有“drawInRect”这样的函数。 - Eugene Trapeznikov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接