iOS9 - 高级触摸输入

iOS9在显示方面的提升

  • 在iOS8中处理一次触摸响应
    我们可以将手机相应刷新 UI 的过程分成这样几个过程:
    • MutiTouch
      这是硬件扫描屏幕中触碰点的过程,在大部分的设备中,这将会占用整个显示帧中的一小部分,但是苹果的许多产品,它是占用整个显示帧的。
    • App
      一旦Muti-Touch 完成了扫描并且完成了过滤掉这个界面的噪音之后,你的 UI 应用的 UITouch 回调将会在下一帧被调启,通常刚好在一帧刷新之后,这个时候你的应用应该即时的响应触摸事件输入。
    • CoreAnimation
      一旦应用完成了响应触摸事件并且刷新了状态,CoreAnimation 将会在下一帧唤醒并且将你的视图和图层信息转换为 GPU 命令然后由 GPU 来渲染。
    • GPU
      你将会注意到 GPU 不用非等到下一帧刷新的时候才开始工作。只要 CoreAnimation 将指令传递给它它立即就开始渲染界面。这一部分的时间是动态的,基于应用视图的复杂程度。
    • LCD
      一旦 GPU 完成了渲染,被渲染的 frame 将会排队在下一次刷新的时候被展示出来。


      iOS9 - 高级触摸输入_第1张图片
      iOS8.png
  • 简单理解:
    如果按 iOS8 的框架来走,最少会产生4帧 的延迟,为什么是4帧?
    Multi-Touch 占一帧,App 最少占一帧,因为 CoreAnimation 是在下帧刷新的时候才开始算的,所以就算 App 少于1帧,还是会占用一帧的延时,CoreAnimation 执行之后GPU 会立即执行,但是 LCD 又必须等到 GPU 那帧执行之后才会刷新,所以最少会有4帧的延迟。
  • iOS9 提升之后的图
    iOS9 - 高级触摸输入_第2张图片
    iOS9.png

    WWDC链接

你可能感兴趣的:(iOS9 - 高级触摸输入)