美文网首页
iOS scrollView、tableview上/下滑动隐藏/

iOS scrollView、tableview上/下滑动隐藏/

作者: 简书弧线 | 来源:发表于2018-09-29 15:44 被阅读30次

    在做滑动隐藏/显示控件时,我们一般使用的是这个方法:

    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
    
        if (self.contentOffseY < targetContentOffset->y) {
            //  只有当 velocity.y 不等于0的时候,才是有效的滑动,这样可以避免一些bug(感兴趣的可以把这个判断去掉试试效果)
            if (velocity.y != 0) {
                //  隐藏控件
                [self setSelectionViewHide:velocity.y > 0];
            }
        }else if(self.contentOffseY > targetContentOffset->y) {
            if (velocity.y != 0) {
                //  显示控件
                [self setSelectionViewHide:velocity.y > 0];
            }
        }
        // 保存当前的contentOffseY,用于下次比较大小
        self.contentOffseY = targetContentOffset->y;
    }
    

    这里有个判断: velocity.y != 0
    主要是解决在向下滑动时,松开手指后,页面还在滑动,如果这个时候,再用手指按住屏幕,滑动会突然停止,这时候会调用到这个方法,velocity.y 这个时候会等于0。
    如果没有这个判断,会导致控件显示/隐藏错乱,有了这个判断后,就完全不会出现显示/隐藏错乱的问题了。如果有集成了上拉/下拉刷新的话,这个问题会更加的明显。

    相关文章

      网友评论

          本文标题:iOS scrollView、tableview上/下滑动隐藏/

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