UIWebTiledView是UIWebBrowserView->UIWebDocumentView->UIWebTiledView繼承鍊中的老爺子,但這三個類的職能卻是MVC的關系,UIWebBrowserView是Controller,UIWebDocumentView是Model,UIWebTiledView是View。(這也是我第一次見到這樣的設計,很有意思)
從函數和變量名看,UIWebTiledView有這些作用:
确定分塊的排版是在主線程還是webThread
設定需要重排版、重繪,發起分塊排版
确定分塊模式
設定繪圖區大小和transform等。
hostLayer則是放置用作硬體加速的layer的(這個不深入講了)。
總結之:UIWebTiledView和WAKWindow共同負責頁面的繪制,包括分塊、排版、提供CALayer的context(繪圖上下文)、緩存Layer、互動(縮放、滾動等)。WAKWindow還兼做分派使用者操作資訊的工作(sendEvent)。