首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >先向下滑动/向下滚动将使视图消失

先向下滑动/向下滚动将使视图消失
EN

Stack Overflow用户
提问于 2018-05-30 13:20:23
回答 1查看 194关注 0票数 0

如何让UIScrollView开始从上到下滚动。当我向下滑动时,它会先向下滚动,而不是向上滚动,然后消失。我现在所拥有的是,我可以先向上滚动,然后向下滚动,同时向下滚动它消失了。这是我的代码-

代码语言:javascript
复制
func scrollViewDidScroll(_ scrollView: UIScrollView) {

        //for toogle swipe view
        if scrollView.contentOffset.y < 120 {
            self.swipeMsgView.isHidden = false
        }else {
            self.swipeMsgView.isHidden = true
        }
        //for making bottom inset
        if scrollView.contentOffset.y < 190 {
            var contentInset:UIEdgeInsets = scrollView.contentInset
            contentInset.bottom = scrollView.contentOffset.y-100
            scrollView.contentInset = contentInset
        }
        //when swipe down
        if scrollView.contentOffset.y == 0 {
            if !isScrollDownFirstTime{
                UIView.animate(withDuration: 0.5, animations: {
                    self.dismiss(animated: true, completion: nil)
                })
            }
        }
        //for tracking first time scrolling
        if scrollView.contentOffset.y > 150 {
            isScrollDownFirstTime = false
        }
    }

它工作得很好。但我想在用户先滑动或向下滚动时消失视图(滑动手势不起作用)。有没有什么优雅的方法可以用这个现有的特性来做到这一点呢?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-05-20 12:57:29

@Serg Smyk,这里是我如何解决这个问题的。

代码语言:javascript
复制
    fileprivate var isScrollDownFirstTime = true

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print("Content y offet : \(scrollView.contentOffset.y)")
        //for toogle swipe view
        if scrollView.contentOffset.y < 120 {
            self.swipeMsgView.isHidden = false
        } else {
            self.swipeMsgView.isHidden = true
        }
        
        //for making bottom inset
        if scrollView.contentOffset.y < 190 {
            var contentInset:UIEdgeInsets = scrollView.contentInset
            contentInset.bottom = scrollView.contentOffset.y-100
            scrollView.contentInset = contentInset
        }
        
        //when swipe down
        if scrollView.contentOffset.y == 0 {
            print(CLASS_NAME+" -- scrollViewDidScroll() -- contentOffset.y = 0")
            if !isScrollDownFirstTime{
                UIView.animate(withDuration: 0.5, animations: {
                    self.dismiss(animated: true, completion: nil)
                })
            }
        }

        if scrollView.contentOffset.y < 1 {
            print(CLASS_NAME+" -- scrollViewDidScroll() -- contentOffset.y<0")
            UIView.animate(withDuration: 0.5, animations: {
                self.dismiss(animated: true, completion: nil)
            })
        }
        //for tracking first time scrolling
        if scrollView.contentOffset.y > 150 {
            isScrollDownFirstTime = false
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50596853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档