陈斌彬的技术博客

Stay foolish,stay hungry

UIWebView 内部解析

在实际项目开发中要用到 UIWebView ,对 UIWebView 的机制进行总结下,有利于更好地理解其原理。

UIWebView 在使用的时候可以上下左右滑动,其内部肯定存在个UIScrollView. 从接口声明看 UIWebView 继承于UIView 不过实现了UIScrollViewDelegate,说明其内部确认存在一个 UIScrollView且其为这个 ScrollView 的 delegate.

通过代码测试发现,UIWebView 存在一个 subview 其类型为 UIWebViewScrollView (5.0之前是一个 UIScrollView),UIWebViewScrollView 继承于 UIScrollView,实现了一些自己的东西。 这个时候再来看看这个ScrollView 的 subviews 有什么, 其 subviews 首先存在 10个 UIImageView 的对象,主要用于实现上下的边界后面的阴影效果,如果你想把这些阴影效果去掉,可以使这些 UIImageView 的对象设置为 hidden 隐藏掉,还有一个重要的subview便是 UIWebBrowserView ,这里便是渲染网页内容的地方了。

当网页在加载的过程中,UIWebBrowserView 会动态的根据网页内容的高度去调整 ScrollView 的 ContentSize