当我打印tableView.bounds
ViewDidLoad和ViewWillAppear,它是(0.0, 0.0 ,375.0,667.0)
但在ViewDidAppear和scrollViewDidScroll方法中,它是(0.0, -64.0 ,375.0,667.0)
为什么“Y”值为负。向下滚动时,它会不断减小负值。根据我的假设,当向下滚动时,它应在正轴上增加;当向上滚动时,视图原点将上升,因此,当向上滚动时,它应在负轴上减小。这意味着,它的发生方向与我的假设相反。为什么会这样呢?
有人可以解释一下吗?
最佳答案
导航栏和状态栏的高度为64。同样在viewDidLoad和viewWillAppear中,边界没有布置好。您应该在viewDidLayoutSubviews中获得正确的边界。
至于为什么向下滚动时y轴变为负数,这是因为您正在打印边界。如果您要获得问题中所期望的值,则需要使用tableView.contentOffset.y
。
我认为关于框架和界限之间的差异的SO question也将有所帮助。