iOS 6 & iOS 7 的适配
场景1: 没有NavigationController,同时根视图是UIView
-
(void)viewWillLayoutSubviews
{
if ([[UIDevice
currentDevice].systemVersion floatValue] >= 7.0) {
NSLog(@"======>
%f", [self.topLayoutGuide length]);
CGFloat top = [self.topLayoutGuide
length];
// 直接修改self.view的bounds属性
CGRect bounds =
self.view.bounds;
// 强行往下挤20个点,其它不变
bounds.origin.y = -top;
self.view.bounds = bounds;
}
}
场景2: 没有NavigationController,同时根视图是UIScrollView/UITableView
-
(void)viewDidLoad
{
[super viewDidLoad];
// 根视图是一个UITableView,继承自UIScrollView
// contentInset属性可以设置滚动视图距离边界的距离
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
[self.tableView setContentInset:UIEdgeInsetsMake(20, 0, 0, 0)];
}
}
场景3: 有NavigationController,同时根视图是UIView
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
[self setEdgesForExtendedLayout:UIRectEdgeNone];
}
场景4: 有NavigationController,同时根视图是UIScrollView/UITableView
不需要任何处理!