关于显示坐标问题
注意:
iOS7以上系统,self.navigationController.navigationBar.translucent默认为YES,self.view.frame.origin.y从0开始(屏幕最上部)。
此时若是添加代码self.edgesForExtendedLayout =
UIRectEdgeNone(iOS7.0以后方法);self.view.frame.origin.y会下移64像素至navBar下方开始。但是
此时当push到一个新的controller之前给当前屏幕截图的时候[self.view.layer
renderInContext:UIGraphicsGetCurrentContext()];,由于navBar是透明的,会出现64像素的黑色区
域。
此时只需要把self.navigationController.navigationBar.translucent=NO即可,不需要加代码self.edgesForExtendedLayout;
iOS7之后也增加了一个self.tabBarController.tabBar.translucent的属性,默认为YES。当应用同时使用
navBar和TabBar的时候。设置self.tabBarController.tabBar.translucent=NO并且
self.navigationController.navigationBar.translucent=NO时候,得到
self.view.frame--->{{0,
64}, {320,
455}}。视图的高度也改变为navBar和tabBar之间的455像素。当
self.navigationController.navigationBar.translucent=YES并且
self.tabBarController.tabBar.translucent=NO的时候self.view.frame--->{{0,
0}, {320, 519}};其都为YES的时候self.view.frame--->{{0, 0}, {320, 568}};
注意:设置self.edgesForExtendedLayout =
UIRectEdgeNone;的时候会使得navBar和tabBar都不占空间。self.view.frame--->{{0, 64},
{320, 455}}。此时iOS7默认navBar和tabBar都是透明的。截图的时候需要注意。
iOS6以下系统,默认navBar和tabBar都不占空间。