天天看點

UIWebView結構體系(二)UIWebTiledView和WAKWindow

UIWebTiledView是UIWebBrowserView->UIWebDocumentView->UIWebTiledView繼承鍊中的老爺子,但這三個類的職能卻是MVC的關系,UIWebBrowserView是Controller,UIWebDocumentView是Model,UIWebTiledView是View。(這也是我第一次見到這樣的設計,很有意思)

從函數和變量名看,UIWebTiledView有這些作用:

确定分塊的排版是在主線程還是webThread

設定需要重排版、重繪,發起分塊排版

确定分塊模式

設定繪圖區大小和transform等。

hostLayer則是放置用作硬體加速的layer的(這個不深入講了)。

總結之:UIWebTiledView和WAKWindow共同負責頁面的繪制,包括分塊、排版、提供CALayer的context(繪圖上下文)、緩存Layer、互動(縮放、滾動等)。WAKWindow還兼做分派使用者操作資訊的工作(sendEvent)。

繼續閱讀