最近写一个demo打算用一个scrollview(背景是蓝色)实现无线轮播的功能,然后放UINavigationController的viewDidload方法上addSubview到UINavigationController的View上。效果如下
会发现scrollview上的imageView的contentOffet好像向下位移,打印imageView的坐标Y值都是0没有问题。仔细看看蓝色的区域高度刚刚好和navigationbar的高度一样。
后来发现问题是:
iOS7之后,当UIViewController成为UINavigationController的控制视图,UIViewController的控制视图上的第一个子视图是UIScrollView,UIScrollView会往下偏移64px的位置,64px是UINavigationBar的44px高度加上状态条20px的高度。
解决办法:
设置UINavigationController的automaticallyAdjustsScrollViewInsets属性
self.automaticallyAdjustsScrollViewInsets = false