• 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(00984748);//for 横屏

    还有要设置:

        webView.scrollView.clipsToBounds = NO; //这样超出范围scrollView.frame 也会显示,即整个webView还是会正常显示。

    这样就搞定了。

    如果你重新设置的scrollView变小了,那响应的响应就变小了,如果有需要的话就重写UIScrollView所在的parentView的hittest事件,在其他区域的事件返回值为UIScrollView对象,这样用户感觉整个屏幕都是UIScrollView在响应了。

    此外,scrollView的contentOffset属性也蛮重要的,它表示当前scrollView的原点到content View的位移,可以当做分页里面的地位点,页码数来使用。

     

    contentSize就是可滚动的最大区域了,这个可以表示总页数。

     

    上面的方法应该够用了,如果有更特殊的需要,就把分页功能关闭,自己在各种动作响应事件里面设置contentOffset也可以实现分页,但要达到官方的那种效果的话动作需要处理得很协调,课设置加速、减速的速率之类的。

     

  • 相关阅读:
    在地址栏里输入一个地址回车会发生哪些事情
    ROS librviz库
    jumpserver运行源码
    django源码剖析(steup、runserver、生命周期)
    QT在linux下编译出现Unable to create a debugging engine错误的解决
    node 服务启动
    查看端口占用
    自定义reducer,pipe,compose函数 码农
    talk 码农
    实现简版redux和中件间 码农
  • 原文地址:https://www.cnblogs.com/susanws/p/5599662.html
Copyright © 2020-2023  润新知