设置navigationbar背景图片的时候,真机测试,可能会出现真机向下移动64,或者是navigationbar没有设置成功,导致self.view的开始y值为整个屏幕的0开始而不是navigationbar后的0!iOS7之后由于navigationBar.translucent默认是YES,坐标零点默认在(0,0)点 当不透明的时候,零点坐标在(0,64)
设置navigationbar的背景图片
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@""] forBarMetrics:UIBarMetricsDefault];
解决办法
在viewcontroller的viewdidload中设置,translucent属性默认是YES,也就是具有透明属性。所以我们看到的导航栏背景色与美工给的会有很明显的色差。
当translucent = YES,controller中self.view的原点是从导航栏左上角开始计算。
当translucent = NO,controller中self.view的原点是从导航栏左下角开始计算。
self.navigationController.navigationBar.translucent = NO;//取消透明度
或者把需要设置的图片透明度设置为99%。