美文网首页
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