#import "ViewController.h"
@interface ViewController ()
//这个imageView是storyBoard里面的
@property (weak, nonatomic) IBOutletUIImageView *GruopImageView;
//这两个是自定义的Image
@property (nonatomic,strong)UIImage *image1;
@property (nonatomic,strong)UIImage *image2;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_group_t group =dispatch_group_create();
dispatch_group_async(group, queue, ^{
//获得image1的图片地址
NSURL *image1Url = [NSURLURLWithString:@"http://f.hiphotos.baidu.com/image/pic/item/3812b31bb051f8196bc52fa8dfb44aed2f73e774.jpg"];
//加载image1
NSData *data1 = [NSDatadataWithContentsOfURL:image1Url];
self.image1= [UIImageimageWithData:data1];
});
dispatch_group_async(group, queue, ^{
//获得image2的图片地址
NSURL *image2Url = [NSURLURLWithString:@"http://photocdn.sohu.com/20151124/mp43786429_1448294862260_4.jpeg"];
//加载image2
NSData *data2 = [NSDatadataWithContentsOfURL:image2Url];
self.image2= [UIImageimageWithData:data2];
});
//合成image1和image2(notify的作用是当它前面的都执行完才执行它)
dispatch_group_notify(group, queue, ^{
//开启上下文
UIGraphicsBeginImageContext(CGSizeMake(200, 200));
[self.image1drawInRect:CGRectMake(0, 0, 100, 200)];
[self.image2drawInRect:CGRectMake(100, 0, 100, 200)];
//获得上下文
UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
//结束上下文
UIGraphicsEndImageContext();
//回到主队列
dispatch_async(dispatch_get_main_queue(), ^{
self.GruopImageView.image = image;
});
});
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
运行效果: