Swift:在UIWebview Scroll上隐藏UIStackView

时间:2017-01-19 10:35:56

标签: ios uiwebview swift3 uistackview

我有一个 UIWebview ,其上面是 UIStackView 。我希望在webview中滚动隐藏显示 动画,就像Chrome浏览器中的效果一样。

我如何实现这一目标?

P.S:这个没有用

iOS/Swift - Hide/Show UITabBarController when scrolling down/up

2 个答案:

答案 0 :(得分:1)

ScrollView scrollViewDidScroll您可以使用animate(withDuration duration: TimeInterval, animations: @escaping () -> Swift.Void)来检测滚动并使用UIView中的方法StackView来更改scrollViewWillBeginDragging(_ scrollView: UIScrollView)的高度。这可能是最简单的解决方案。

编辑:

如果您想先检测一下互动,请尝试thead {display: table-header-group; }。如果这也无法解决您的问题,请尝试创建自己的自定义手势并将其添加到scrollview。

答案 1 :(得分:1)

我遵循 Axel 的建议后开始工作。 这是代码:

var lastContentOffset: CGPoint!

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    lastContentOffset = scrollView.contentOffset
}

func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
    if lastContentOffset.y > scrollView.contentOffset.y {
        print("Going up!")
        if topBarStackView.isHidden == true{
            UIView.animate(withDuration: 0.2, animations: {
                self.topBarStackView.isHidden = false
            })
        }
    } else {
        print("Going down!")
        if topBarStackView.isHidden == false {
            UIView.animate(withDuration: 0.2, animations: {
                self.topBarStackView.isHidden = true
            })
        }
    }
}