iOS 6 & iOS 7 的适配笔记
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;
}
}
可以抽成宏
#define kIOS7_NONav_View \
- (void)viewWillLayoutSubviews\
{\
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {\
NSLog(@"======> %f", [self.topLayoutGuide length]);\
CGFloat top = [self.topLayoutGuide length];\
CGRect bounds = self.view.bounds;\
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
不需要任何处理!
作者:
出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
本文版权归作者和博客园共有,欢迎转载,
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。