#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
運行效果: