Swift 系统学习 34 线程通信 Swift3.0 子线程下载图片主线程显示图片
2017-03-01 16:39
441 查看
import UIKit class ViewController: UIViewController { var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) self.view.addSubview(imageView) // Do any additional setup after loading the view, typically from a nib. // 程序启动后开子线程下载图片,图片下载完成之后回到主线程设置图片 Thread.detachNewThreadSelector(#selector(ViewController.downloadImage), toTarget: self, with: nil) } func downloadImage() { // 获得要下载图片的url let url = NSURL.init(string: "http://cdn.cocimg.com/assets/images/logo.png") // 把url地址指向资源的二进制下载到本地 let imageData = NSData.init(contentsOf: url! as URL) // 把二进制数据转换为图片 let image = UIImage.init(data: imageData! as Data) // 打印查看当前线程(应该是在子线程中下载图片) print("当前线程为\(Thread.current)") // 线程间通信 self.performSelector(onMainThread: #selector(ViewController.showImage), with: image, waitUntilDone:true) } func showImage(image:UIImage) { imageView.image = image print("处理UI刷新操作的线程:\(Thread.current)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
相关文章推荐
- android断点下载并显示进度,关于handler,和主线程不能联网采取子线程联网下载,和多线程下载学习
- IOS开发-UI学习-根据URL显示图片,下载图片的练习(button,textfield,image view,url,data)
- Android 通过开源框架实现加载网络图片并下载到SD卡通知系统相册显示,(并实现分享图片功能)
- Rx_java(4)Rx_java2中的线程控制 从网络下载图片并显示在界面小案例
- 响应鼠标点击的代码实现了在单独线程中下载图片并在ImageView显示
- 项目中下载的图片本地系统相册无法显示
- Android图片下载到本地,系统图库不显示
- 学习url读取网络资源,开启线程来下载图片
- 最近有关Ember.js的博客图片都无法显示了,如果有需要欢迎下载有关博客的word文档学习
- swift - 用GCD下载图片并显示
- Android学习(34) -- 带缓存的网络图片下载
- Centos系统中进行深度学习后本地显示效果图片
- Swift 系统学习 33 Thread currentThread isMainThread 创建线程四种方式 模拟售票
- iOS学习笔记-107.多线程06——CGD线程间通信下载图片
- 使用okhttp异步下载图片,保存到本地,并在系统相册中显示
- 主线程中一定不能放耗时操作,必须要开子线程,比如下载文件,不然会不让你拿到输入流--报错显示android.os.NetworkOnMainThreadException
- 学习使用线程下载json数据,并使用ListView显示出来的总结
- iOS学习笔记-104.多线程03——线程间通信图片下载与时间计算
- 可以显示单图片,多图片ajax请求的ThickBox3.1类下载
- 如何提高网页中图片显示的用户体验(附源码下载)