【发布时间】:2014-08-08 20:16:50
【问题描述】:
我有一个放置在 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()
当 Y 的 scrollView 的内容偏移量达到 thresholdY 时,topView 会抖动。
我已经在-scrollView.contentOffset.y 上记录了一个日志,它似乎在抽搐期间跳跃了 20 像素。知道为什么会发生这种情况吗?
【问题讨论】:
-
我的猜测是,当您隐藏状态栏时,总屏幕尺寸发生了变化,因此操作系统正在相应地更新内容偏移量......您可能需要在代码中考虑当前屏幕尺寸,如果就是这样(Screensize,我的意思是你的滚动视图的父视图)。
标签: ios uiscrollview nslayoutconstraint