iOS7的界面上移问题

Posted apple家园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS7的界面上移问题相关的知识,希望对你有一定的参考价值。

第一种方法:修改BaseSDK

XCode5的默认BaseSDK是ios7,所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK,所以要想能做到更改SDK,我们就要添加旧的SDK。

1.从苹果开发者中心下载旧版本XCode,https://developer.apple.com/downloads/index.action?name=Xcode

2.从中提取出iPhoneOS SDK 和iPhone Simulator SDK,前者所在的位置是XCode应用程序包中的路径是Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs,后者是Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

3.假设我们已经安装了XCode5,那么我们在应用程序中找到XCode.app右击显示包内容,依此 Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 路径打开,把提取出的iPhoneOS SDK复制进去。模拟器SDK的拷贝也同理。

4.重启XCode,这个时候就可以设置Base SDK了

5.假如设置成iOS6,那么应用就算在运行iOS7的设备上也是呈现iOS6的特性。举个例子,倘若此应用在需要输入的时候弹出的键盘是iOS6样式的并不是iOS7样式的。

6.可以参考http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/

第二种方法:手动代码设置各个UI组件的frame

1.判断当前设备的系统

#define iOS7 ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0)?YES:NO

2.再根据不同的系统设置Frame

 

第三种方法:改变window

1.需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES

2.在AppDelegate.m中

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

 

添加

第四种方法:对每个UIViewController的.m文件中编写代码进行设置(推荐)

 

推荐使用这种方法

在iOS7当中未使用UINavigationController界面相对iOS6会上移20px,使用了会上移64px。简单的说导航栏和状态栏默认都会覆盖下面的页面,使用下面的方法就可以避免

 if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0) {

self.edgesForExtendedLayout = UIRectEdgeNone;

}

以上是关于iOS7的界面上移问题的主要内容,如果未能解决你的问题,请参考以下文章

聊天界面使用IQKeyboardManager导航栏及整个页面上移的解决方法

Android 软键盘弹出时布局内指定内容上移实现及问题解决

Android 软键盘弹出时布局内指定内容上移实现及问题解决

当网页点击tab键切换输入的文本框时,整个网页会出现上移的情况?如何解决....急急.......

iOS6 vs iOS7 外观界面生成器

数据重新加载时 iOS 集合视图上移