IOS多线程 - 使用线程加载一张图片 - NSThread(1)(转)
更新UI的操作在IOS中其实和在Android中是一致的,都是不能在主线程中执行比较耗时的操作,所以需要开启新线程去做这些操作,以免阻塞主线程,当新线程中的操作完成之后,调用主线程来更新UI。下面就是一个这样的例子:
1、声明ImageView控件
1 #import <UIKit/UIKit.h> 2 3 @interface DemoDispatchQueueViewController : UIViewController 4 @property(nonatomic,strong) UIImageView *imageView; 5 @end
2、完成功能
1 #import "DemoDispatchQueueViewController.h"2 3 @interface DemoDispatchQueueViewController ()4 5 @end6 7 @implementation DemoDispatchQueueViewController8 @synthesize imageView;9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 10 { 11 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 12 if (self) { 13 } 14 return self; 15 } 16 17 - (void)viewDidLoad 18 { 19 [super viewDidLoad]; 20 // Do any additional setup after loading the view. 21 self.title = @"GCD Demo"; 22 23 self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 300, 380)]; 24 25 self.imageView.contentMode = UIViewContentModeScaleToFill; 26 27 [self.view addSubview:imageView]; 28 29 [NSThread detachNewThreadSelector:@selector(loadImageByUrl:) toTarget:self withObject:@"http://image.rayliimg.cn/0008/2009-01-15/images/2009115135825184.jpg"]; 30 31 } 32 33 -(void) loadImageByUrl:(NSString *) imageUrl 34 { 35 NSLog(@"url is :%@",imageUrl); 36 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]]; 37 UIImage *image = [UIImage imageWithData:data]; 38 39 if(image != nil){ 40 [self performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES]; 41 }else{ 42 NSLog(@"无法载入相应的图片"); 43 } 44 } 45 -(void) setImage:(UIImage*) image{ 46 [self.imageView setImage:image]; 47 } 48 49 50 - (void)didReceiveMemoryWarning 51 { 52 [super didReceiveMemoryWarning]; 53 // Dispose of any resources that can be recreated. 54 } 55 56 @end
转自 http://www.cnblogs.com/xinye/archive/2013/03/31/2991190.html
转载于:https://www.cnblogs.com/huanglong/archive/2013/05/22/3092168.html
IOS多线程 - 使用线程加载一张图片 - NSThread(1)(转)相关推荐
- Cocos2d-x教程(36)-多线程与异步加载
欢迎加入Cocos2d-x 交流群:193411763 转载时请注明原文出处 :http://blog.csdn.net/u012945598/article/details/41312345 --- ...
- Cocos2d-x的多线程与异步加载实现详解
Cocos2d-x是一个单线程循环的引擎,引擎通过每一帧之间更新游戏中各元素的状态,以保证它们之间互不干扰,这个过程中尽管看起来成程序像是 在并行运行,但实际上却是一个串行过程. 举例来说,在游戏进行 ...
- Android Bitmap 全面解析(二)加载多张图片的缓存处理
一般少量图片是很少出现OOM异常的,除非单张图片过~大~ 那么就可以用教程一里面的方法了 通常应用场景是listview列表加载多张图片,为了提高效率一般要缓存一部分图片,这样方便再次查看时能快速显示 ...
- flask keras 多线程环境下加载模型
keras 多线程环境下加载模型 Tensor Tensor is not an element of this graph. 问题场景 keras 使用flask 发布深度学习模型服务,模型有一个定 ...
- 列表异步线程加载图片
手机客户端以列表形式展示数据是非常常见的一种方式.然而列表中要显示图片(比如:头像)就要采用异步线程加载的方式,这样做是为了防止加载图片数据的时候,花费时间过长,阻塞UI线程,从而达到保持App的流畅 ...
- iOS控制器与视图加载方法
转载记录, 请看原文: 1. iOS中的各种加载方法(initWithNibName,loadNibNamed,initWithCoder,awakeFromNib等等)简单使用 http://w ...
- IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案
IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案 参考文章: (1)IOS使用pods初次加载出现Pods-resources.sh ...
- 编辑器如何加载多张图片
只有M1(完整版).M3(拼图)支持加载多张图片 加载多张图片使用xiuxiu.loadPhoto(images,base64,id); 若M1加载多张图片,多加一个固定参数,则使用xiuxiu.lo ...
- ios开发多线程篇--异步加载网络图片GCD
一.异步加载网络图片 1.ATS (1)简介 从iOS9.0开始,如果按照以前的方式写代码,在访问网络的时候 ,会报以下警告信息: App Transport Security has blocked ...
最新文章
- LeetCode Nim Game
- w3cschool教程之jQuery UI 教程概述
- 经典英语口语,不得不看(推荐)
- 求1-100之间的奇数和、偶数和
- java 二叉排序_java实现二叉排序树
- h5优秀控件_H5匠人手册:霸屏H5实战解密
- 自学python后自己接单-自学Python 后端一年半,如何写简历包装自己得到面试机会?...
- 即时通讯源码,IM源码-哇谷即时通讯源码,哇谷团队源码开发
- apple 关闭双重认证_如何在Apple Mail中关闭联系人和事件建议
- Structure-Grounded Pretraining for Text-to-SQL 论文解读
- win10设置Ctrl+Shift切换输入法
- 怒怼外媒,为中国正名,这个《流浪地球》捧红的犹太小哥太励志了
- vue项目结合iview4UI组件实现树状结构及复杂动态表头列表 Tree-Table 及复杂header 省市区树状表格联动 数据优化后台一次性返回一万条数据页面卡死问题
- 从童年回忆到“人人喊打“,好丽友做错了什么?
- 【MyBatis动态SQL批量修改数据出现报错问题】
- 宜宾市放心舒心消费平台-工商GIS一张图
- 一本书的推荐序——写在《思考的乐趣》即将上市之际
- Novell云计算大会在京开幕
- windows server2012安全配置—停用Guest帐号的方法
- 金融时报:去赚8亿非网民的钱
热门文章
- python画简单花-Python竟能画这么漂亮的花,帅呆了(代码分享)
- python第一次使用教程-Python考试_第一次
- python 编程入门-实验一 Python程序设计入门
- python动态图-Python图像处理之gif动态图的解析与合成操作详解
- python官网打不开-python为什么打不开
- 电脑安装python失败-解决“Windows 7 Python3.6 安装失败”问题
- python3.8.5 应用程序无法启动-macos python3.8.5 打开摄像头问题
- 基于python的界面自动化测试-基于python的接口自动化测试+ddt数据驱动
- python爬虫可以干什么-python爬虫能够干什么
- python怎么安装包-怎么安装python包