由于弹跳而无法获得正确的滚动视图方向

Posted

技术标签:

【中文标题】由于弹跳而无法获得正确的滚动视图方向【英文标题】:Can't get proper scrollview direction because of bounce 【发布时间】:2015-08-06 14:51:34 【问题描述】:

我正在尝试隐藏同步到滚动条的元素。但是滚动弹跳效果弄乱了我的动画。

override func scrollViewDidScroll(scrollView: UIScrollView) 
        if (self.lastContentOffset > scrollView.contentOffset.y) 
            "Animate UIView up"
        
        else if (self.lastContentOffset < scrollView.contentOffset.y)
            "Animate UIView down"
    

有没有其他方法可以让我在不被反弹弄乱的情况下获得我正在滚动的方向。我也不想禁用反弹。

另外,由于我正在将我的 uiview 动画同步到滚动,例如我向上滚动 10px,然后 uiview 高度应该最小化 10px,然后我需要 layoutifneeded() 或任何其他函数吗?

【问题讨论】:

【参考方案1】:

当它弹跳时,您可以假设它正在“越界”滚动,您可以像这样检查它,并且仅在视图没有越界时为视图设置动画。

//Bouncing at the bottom
scrollView.contentOffset.y + scrollView.bounds.size.height > scrollView.contentSize.height;
// Bouncing at the top
scrollView.contentOffset.y < 0

如果您的 contentInset 属性与 UIEdgeInsetZero 不同,您可能需要调整此代码

【讨论】:

以上是关于由于弹跳而无法获得正确的滚动视图方向的主要内容,如果未能解决你的问题,请参考以下文章

SWIFTUI:- 有没有办法在滚动滚动视图时关闭弹跳?

调整keyboardWillBeShown/keyboardWillBeHidden的内容时如何防止滚动视图弹跳

iOS:Tableview 页脚视图在 Scroll 上弹跳

在kivy中禁用弹跳滚动效果

iOS 中的动态布局

滚动视图android studio bouncable