iOS:UIWebView scrollView 的分页滑动问题

  最近在弄一个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也可以实现分页,但要达到官方的那种效果的话动作需要处理得很协调,课设置加速、减速的速率之类的。

 

 

posted on 2012-11-30 20:21  老Zhan  阅读(10301)  评论(0编辑  收藏  举报