我有一个 UIWebview ,其上面是 UIStackView 。我希望在webview中滚动隐藏并显示 动画,就像Chrome浏览器中的效果一样。
我如何实现这一目标?
P.S:这个没有用
iOS/Swift - Hide/Show UITabBarController when scrolling down/up
答案 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
})
}
}
}