App首頁有用戶引導(dǎo)頁,每點(diǎn)擊下一步更新引導(dǎo)圖展示的位置,涉及到UITableView的滑動(dòng)和引導(dǎo)浮層UI變化。
現(xiàn)象:點(diǎn)擊最后一次下一步時(shí),需要UITableView滑動(dòng)到頂部,但是出現(xiàn)部分老機(jī)型無法滑動(dòng)到頂部。
原因:引導(dǎo)浮層UI 有多個(gè)imageView需要展示,本地圖片比較大,比較耗時(shí),執(zhí)行UITableView滑動(dòng)時(shí)已經(jīng)超過了當(dāng)次GPU渲染周期,GPU沒有完成相應(yīng)的渲染。
圖片渲染:當(dāng)runloop到來時(shí),準(zhǔn)備渲染所需的位置BitMap數(shù)據(jù)、解壓縮UIImage數(shù)據(jù)到位圖BitMap、 GPU進(jìn)行坐標(biāo)變換,頂點(diǎn)著色器、圖元裝配、幾何著色器、光柵化階段、片段著色器、混合,最后渲染出圖片。
解決:圖片壓縮、UIImageView異步賦值?;蛘哐舆tUITableView的滑動(dòng)。