三种方法都是通过touchesBegin监听屏幕的触摸实现一、performSelector方式 1 #import "ViewController.h" 2 @interface ViewController () 3 @property (weak, no ...
三种方法都是通过touchesBegin监听屏幕的触摸实现
一、performSelector方式
1 #import "ViewController.h" 2 @interface ViewController () 3 @property (weak, nonatomic) IBOutlet UIImageView *imageView; 4 @end 5 @implementation ViewController 6 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 7 { 8 //放入子线程 9 [self performSelectorInBackground:@selector(download3) withObject:nil];10 }11 12 //下载放入子线程,显示图片应该放在主线程!!!否则会导致刷新问题13 - (void)download314 {15 //图片的网络路径16 NSURL *url = [NSURL URLWithString:@"http://ww2.sinaimg.cn/mw690/63e6fd01jw1f3f3rf75goj20qo0zkagy.jpg"];17 //下载图片数据18 NSData *data = [NSData dataWithContentsOfURL:url];19 20 //生成图片21 UIImage *image = [UIImage imageWithData:data];22 //回到主线程显示图片方法一:23 // [self performSelectorOnMainThread:@selector(showImage:) withObject:image waitUntilDone:YES];24 //回到主线程显示图片方法二:25 //waitUntilDone:表示是否等待主线程做完事情后往下走,YES表示做完后执行下面事,NO表示跟下面事一起执行26 [self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];27 //回到主线程显示图片方法三:28 [self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:YES];29 }30 //主线程显示图片31 - (void)showImage:(UIImage *)image32 {33 self.imageView.image = image;34 }
原标题:iOS开发小功能之十一:线程间的通信(3种方式)
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。