我有一个放在UIScrollView上的视图,它根据UIScrollView的内容偏移量移动。我通过在scrollViewDidScroll
中调整视图的垂直约束来实现这一点:
topViewTopConstraint.constant = -scrollView.contentOffset.y - topView.frame.height
topView
移动很大,直到不透明状态栏需要隐藏,即达到某个阈值时。在我的VC scrollViewDidScroll
中,我使用以下代码实现它
if -scrollView.contentOffset.y <= thresholdY {
self.statusBarHidden = true
} else {
self.statusBarHidden = false
}
self.setNeedsStatusBarAppearanceUpdate()
当scrollView的Y内容偏移量达到thresholdY
时,topView
会加速-scrollView.contentOffset.y
。
我在{{1}}上登录了一下,在抽搐期间似乎跳了20个像素。知道为什么会这样吗?
答案 0 :(得分:2)
topView约束是否基于顶部指南?问题是顶部约束可能是根据顶部引导线的底部定义的,它是状态栏的底部。当您隐藏线移动的状态栏时。因此,当偏移量达到您的阈值时,它会隐藏状态栏,然后使if语句不真实,从而重新打开状态栏,依此类推。
您可以定义与底部指引线相关的顶部约束或其他不变的约束。