2017-10-11 71 views
1

我正试图达到这个效果。如何在滚动时隐藏UIView?

enter image description here

我试图隐藏一个视图,当用户滚动起来,并揭示其作为用户向下滚动。

我不知道如何去做这件事。 我试着看scrollView didScroll函数,但我失去了如何设置它。有什么建议?

+1

显示迄今为止你做了什么? – cole

+0

另外确认,你的视图是简单的UIView还是tableView或者collectionView? – cole

+0

我的选择是记住'didScroll'方法中'scrollView'的'contentOffset'。然后,如果你看到'scrollView'上升,你应该将你的自定义视图移动(动画)到某个点(正如我与Alpha一起看到的那样)。当你注意到它停下来做反例(也限于某个点)。 – Adamsor

回答

3

Hiding content on scroll

请检查该库它做你的连接GIF做什么。

另一种方法是从你附加的gif文件。 在顶部添加搜索栏。并将隐藏部分作为标题并对齐搜索栏和tableview以获取该动画。

1

您需要设置滚动视图的容器视图和要作为滚动视图的代理隐藏的视图,并注册该类以符合UIScrollViewDelegate协议。

您还需要跟踪滚动视图的内容偏移财产,并setvthis初始滚动视图的偏移创建时:

fileprivate var scrollOffset : CGPoint 

然后,正如你所说,使用scrollViewDidScroll方法:

internal func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let delta : CGPoint = CGPoint(x: scrollView.contentOffset.x - scrollOffset.x, 
     y: scrollView.contentOffset.y - scrollOffset.y) 

    if delta.y > 0, subviewToFade.isDescendant(of: self) { 
      // fade out subviews and remove 
    else if delta < 0, !subviewToFade.isDescendant(of: self) { 
      // add subviews and fade back in 

    } 

    scrollOffset = scrollView.contentOffset 
} 

希望有所帮助。