iOS 异步 CPU 渲染

如果是在主线程上,容易影事件响应、屏幕刷新等等造成卡顿,但是UIKit放到后台线程一般是不安全的(原因有很多,不一一详述),当这并不意味着无法在后台线程进行CPU渲染:解析model,组装数据,绘制曲线、渲染Image这些都是可以放倒后台线程的,提交的主屏幕时才需要切换到主线程。

目前有两种方法:

  1. ExtensionCoreGraphics/UIImage+CoreGraphics.swift

    将整个imageWithRender放到异步线程执行,在render()中执行曲线、颜色等绘制,或者图片的处理等,这一系列的操作全都放到后台线程;得到Image后再切换到主线程,可以交给UIImageView, 也可以

  2. CAShapeLayer

    在后台线程将渲染好的path对方赋给shapelayer, 然后切换到主线程 view.layer addSublayer

results matching ""

    No results matching ""