最近在弄一个native webview+html的项目,感觉这种尝试还是挺不错的,特被是适合内容类app。如杂志、电子书等。其实native搭的就是一个框架,主体还是在html的内容上,所以花在html的功夫要十分多。
要做到webview的分页的效果,主要是利用UIwebView里面的scrollView的属性。
webview里面有一个分页模式的功能,设置
webView.scrollView.pagingEnabled = YES;
即可。这样设置的话,你的webview可以按分页滚动,滚动的距离(页宽)就是按照scrollView的size来设定。如果你要自己定义滚动页面大小的话可以通过设置scrollView的size去改变。例如我的项目中就要设置成984,而不是1024(for ipad)。我 就设置如下:
self.webView.scrollView.frame = CGRectMake(0, 0, 984, 748);//for 横屏
还有要设置:
webView.scrollView.clipsToBounds = NO; //这样超出范围scrollView.frame 也会显示,即整个webView还是会正常显示。
这样就搞定了。
如果你重新设置的scrollView变小了,那响应的响应就变小了,如果有需要的话就重写UIScrollView所在的parentView的hittest事件,在其他区域的事件返回值为UIScrollView对象,这样用户感觉整个屏幕都是UIScrollView在响应了。
此外,scrollView的contentOffset属性也蛮重要的,它表示当前scrollView的原点到content View的位移,可以当做分页里面的地位点,页码数来使用。
contentSize就是可滚动的最大区域了,这个可以表示总页数。
上面的方法应该够用了,如果有更特殊的需要,就把分页功能关闭,自己在各种动作响应事件里面设置contentOffset也可以实现分页,但要达到官方的那种效果的话动作需要处理得很协调,课设置加速、减速的速率之类的。