你可以将它们对齐在单个UIView中(我认为甚至可以在屏幕外,但我还没有检查过)-然后只需使用QuartzCode将该UIView转换为UIImage:
UIGraphicsBeginImageContext(myView.bounds.size);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
然后将其转换为特定格式,例如PNG:
NSData *imageData = UIImagePNGRepresentation(image);
那么发送应该不会太困难。
编辑
这里有一个扩展示例,你还可以看到3张图片 - 当然你也可以使用界面构建器和插座而不是编写所有内容 - 但你可以复制粘贴此内容以尝试:
UIImageView *imgView1, *imgView2, *imgView3;
imgView1 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image1"]];
imgView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image2"]];
imgView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image3"]];
imgView1.frame = CGRectMake(0, 0, 50, 50);
imgView2.frame = CGRectMake(50, 50, 100, 100);
imgView3.frame = CGRectMake(100, 100, 200, 200);
[referenceView addSubview:imgView1];
[referenceView addSubview:imgView2];
[referenceView addSubview:imgView3];
UIGraphicsBeginImageContext(referenceView.bounds.size);
[referenceView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
resultView = [[UIImageView alloc] initWithImage:finalImage];
resultView.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:resultView];
referenceView.hidden = YES;
注意:在调用 renderInContext 方法时,UIView 必须可绘制/可见(可以是屏幕外),但不能被隐藏或设置 alpha=0,否则它将被渲染为不可见。因此,在绘图后要么将其放置在屏幕外,要么立即隐藏。