最近封装了一个顶部滑动菜单,用scrollView 写,写着写着发现在运行的时候,菜单总是跑到下面去,即使设置了根视图的self.automaticallyAdjustsScrollViewInsets = false(取消自动布局)和scrollView的初始偏移量为CGPoint(x: 0,y: 0)也不管用,于是上网查阅了大量资料,发现了一个问题。
在navigationBar,以及statusBar都显示的情况下,Navigation的当前VC,他的VC的view的子视图树的根部的第一个子视图,如果是Scrollview的话,这个scrollview的所有子视图都会被下移64个像素。
解决方法1
将所有scrollview的子视图统统上移64个像素
解决方法2
使scrollView不是根视图的第一个子视图,哪怕你在上面再加一个透明的,高度为1 的UIView 也好啊
let view = UIView.init(frame: CGRect.init(x: 0, y: 0, width: width, height: 1))
view.backgroundColor = UIColor.clear
self.view.addSubview(view)
self.view.addSubview(scrollview)