美文网首页iOS开发iOS DeveloperiOS 开发
关于一个ViewController中有多个ScrollView

关于一个ViewController中有多个ScrollView

作者: 塔罗师_Michael | 来源:发表于2016-04-08 22:17 被阅读243次

    首先,我要说的是。当ViewController中只用一个 ScrollView 的时候,不存在这个问题。

    你只要去点击 statusbar(电池栏),这个ScrollView,根据苹果的默认设定他是可以滚动到顶部的。

    废话不多说,重点来了

    那么为什么,当一个viewcontroller 中有多个 scrollView的是这个东西就失效了呢。

    经过查阅资料,发现了这么一个属性。scrollsToTop。这个scrollView中的这个属性,根据字面上的意思就很明显了,就多个scrollView需要滚动到 top 的时候你需要设置一下。

    // When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its delegate does not return NO from `shouldScrollViewScrollToTop`, and it is not already at the top.

    // On iPhone, we execute this gesture only if there's one on-screen scroll view with `scrollsToTop` == YES. If more than one is found, none will be scrolled.

    @property(nonatomic)BOOLscrollsToTop__TVOS_PROHIBITED;// default is YES.

    我就不翻译了,有兴趣的可以百度,google 一下。

    下面我们举个例子把,假如viewcontroller中有一个scrollView,scrollView中有三个tableview,我分别叫它们 pageTableView1、pageTableView2、pageTableView3。怎么设置才可以有我们想要的效果呢?

    这里是具体需要怎设置,下面这里是代码:


    self.contentView.scrollsToTop=NO;

    self.pageTableView1.scrollsToTop=NO;

    self.pageTableView2.scrollsToTop=NO;

    self.pageTableView3.scrollsToTop=NO;

    openScrollview.scrollsToTop=YES;//openScrollview 就是我们需要设置开启这个属性的scrollview


    这里是效果图:


    效果图

    总结:如果这个 viewcontroller 中还有其他的 scrollView,包括子视图中scrollView,也需要禁止掉scrollsToTop属性,不然也会没有效果。


    其实就是如此简单,最后放上代码地址:https://github.com/ysghome/ClickStatusbarSrollsToTop
    如果你觉得有帮助到你,请顺便 star 一下,你的支持是我最大的动力。


    相关文章

      网友评论

        本文标题:关于一个ViewController中有多个ScrollView

        本文链接:https://www.haomeiwen.com/subject/wbwvlttx.html