我的应用程序的视图与ios7设备中的状态栏和navigationBar重叠,所以我尝试了很多解决方案
-
在故事板中取消选中'under top bars'属性
-
self.edgesForExtendedLayout = UIRectEdgeNone;
-
在故事板中将delta y设置为-20 ...
但这些都没有奏效 . 我的最后一次试验是将这些行添加到appdelegate的didFinishLaunchingWithOptions中
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
application.statusBarStyle = UIStatusBarStyleLightContent;
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
self.window.clipsToBounds =YES;
} else {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
}
当导航栏被隐藏但是当没有隐藏导航条时它很好用,导航栏的框架是(0,20,320,44)而不是(0,0,320,44)所以navigationBar的高度似乎是64 ..为什么这个?希望有人解释我!谢谢是提前:)
3 回答
有关差异的更好解释,请参阅此转换指南(link) .
确保在viewWillAppear中设置它:
要避免与
UINavigationBar
重叠,必须将其translucent
属性设置为NO
.对于状态栏,您必须通过指定其样式手动设置它,然后重新定位整个窗口的框架 . 我会在iOS 7条件的基础上添加,以确保只有运行iOS 7的用户才会这样做 .