</pre><p><pre name="code" class="objc">//定义宏,判断ios7 #define IOS7 [[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0 //添加代码 if (IOS7) { self.edgesForExtendedLayout = UIRectEdgeNone; //视图控制器,四条边不指定 self.extendedLayoutIncludesOpaqueBars = NO; //不透明的操作栏<br> self.modalPresentationCapturesStatusBarAppearance = NO; }
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 if (IOS7) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; self.modalPresentationCapturesStatusBarAppearance = NO; // self.automaticallyAdjustsScrollViewInsets = NO; // self.navigationController.navigationBar.translucent = NO; // self.tabBarController.tabBar.translucent = NO; } #endif
self.automaticallyAdjustsScrollViewInsets = NO;
看这个UIViewController的这个属性你就明白了,此属性默认为YES,这样UIViewController下如果只有一个UIScollView或者其子类,那么会自动留出空白,让scollview滚动经过各种bar下面时能隐约看到内容。但是每个UIViewController只能有唯一一个UIScollView或者其子类,如果超过一个,需要将此属性设置为NO,自己去控制留白以及坐标问题。
http://blog.csdn.net/mac_cm/article/details/9234451,这个里面有一些属性介绍
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
这个是判断iphone5 or 4
注意,目前我做的适配
如果之前使用了nib文件,同时ui不是自己手写代码add上去的,这里需要在代码里控制每一个ui了(如果你也中枪,那就跟我一样慢慢改吧,以后写代码尽可能手动)
如果是代码里画的ui,那么问题不大,做出响应调整即可。
当然如果你不需要兼容ios5.0,这样可以完全使用autolayout,这样可以使你的工作量降至最低
http://www.cnblogs.com/zcw-ios/articles/3340197.html