iOS9 - 高級(jí)觸摸輸入

iOS9在顯示方面的提升

  • 在iOS8中處理一次觸摸響應(yīng)
    我們可以將手機(jī)相應(yīng)刷新 UI 的過(guò)程分成這樣幾個(gè)過(guò)程:
    • MutiTouch
      這是硬件掃描屏幕中觸碰點(diǎn)的過(guò)程,在大部分的設(shè)備中,這將會(huì)占用整個(gè)顯示幀中的一小部分,但是蘋(píng)果的許多產(chǎn)品,它是占用整個(gè)顯示幀的。
    • App
      一旦Muti-Touch 完成了掃描并且完成了過(guò)濾掉這個(gè)界面的噪音之后,你的 UI 應(yīng)用的 UITouch 回調(diào)將會(huì)在下一幀被調(diào)啟,通常剛好在一幀刷新之后,這個(gè)時(shí)候你的應(yīng)用應(yīng)該即時(shí)的響應(yīng)觸摸事件輸入。
    • CoreAnimation
      一旦應(yīng)用完成了響應(yīng)觸摸事件并且刷新了狀態(tài),CoreAnimation 將會(huì)在下一幀喚醒并且將你的視圖和圖層信息轉(zhuǎn)換為 GPU 命令然后由 GPU 來(lái)渲染。
    • GPU
      你將會(huì)注意到 GPU 不用非等到下一幀刷新的時(shí)候才開(kāi)始工作。只要 CoreAnimation 將指令傳遞給它它立即就開(kāi)始渲染界面。這一部分的時(shí)間是動(dòng)態(tài)的,基于應(yīng)用視圖的復(fù)雜程度。
    • LCD
      一旦 GPU 完成了渲染,被渲染的 frame 將會(huì)排隊(duì)在下一次刷新的時(shí)候被展示出來(lái)。


      iOS8.png
  • 簡(jiǎn)單理解:
    如果按 iOS8 的框架來(lái)走,最少會(huì)產(chǎn)生4幀 的延遲,為什么是4幀?
    Multi-Touch 占一幀,App 最少占一幀,因?yàn)?CoreAnimation 是在下幀刷新的時(shí)候才開(kāi)始算的,所以就算 App 少于1幀,還是會(huì)占用一幀的延時(shí),CoreAnimation 執(zhí)行之后GPU 會(huì)立即執(zhí)行,但是 LCD 又必須等到 GPU 那幀執(zhí)行之后才會(huì)刷新,所以最少會(huì)有4幀的延遲。
  • iOS9 提升之后的圖
    iOS9.png

    WWDC鏈接
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容