假设有3个VC , vc1 、vc2 、vc3。vc2里面有UIscrollView或他的子类对象
vc1 push到 vc2 ,scrollviewdidscroll 会自动调用(在viewWillAppear之前调用)。正常情况下我们是希望viewWillAppear调用完之后,再调用scrollviewdidscroll方法。
vc2 push到 vc3 , scrollviewdidscroll 会自动调用(在viewWillDisappear之后调用) 正常情况下我们是希望viewWillDisappear调用完之后,不调用scrollviewdidscroll方法。
加上这句self.automaticallyAdjustsScrollViewInsets = NO;就好了
automaticallyAdjustsScrollViewInsets 的解释是
- 当你的viewcontroller里面有唯一的scrollView(或者子类对象)时。自动计算导航栏和状态栏的高度 让scrollView的(0,0)点在导航栏下面(不被导航栏遮住)。相当于(0,statusHeight+44)
- 为NO的时候会被导航栏遮住,(0,0)就是(0,0);
探讨了UIScrollView在UIViewController中自动调整的问题,特别是在viewWillAppear和viewWillDisappear生命周期方法中的不当触发。通过设置automaticallyAdjustsScrollViewInsets属性为NO,可以避免scrollView被导航栏遮挡,并确保scrollView的(0,0)点正确定位。
2104

被折叠的 条评论
为什么被折叠?



