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;

}

时间: 2024-12-29 23:05:34

iOS7的界面上移问题的相关文章

[Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,运行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决办法

这个现象只出现在phonegap打包sencha touch的wp8.1程序会出现(仅wp8.1,wp8正常),其它js框架我测试了几个(app framework, jquery mobile),好像没有这个问题. 我来描述一下这个现象: 1.运行phonegap打包的wp8程序,打开一个有输入框的界面,如下图: 2.点击输入框,使其弹出软键盘,界面会上移,如下图: 3.点返回键隐藏软键盘(或者点击界面上其它地方隐藏软键盘),此时界面不恢复原位,如下图: 我的一些研究结果: 1.这种现象只出现

[Cordova/Phonegap] Cordova iOS 应用在第三方输入法的键盘弹出(点击输入框)时,页面不上移,导致输入框被键盘遮挡 的解决办法

http://blog.csdn.net/lovelyelfpop/article/details/52033045 Cordova iOS应用在使用系统自带输入法键盘的时候,聚焦文本框是会将整体webview界面上移的,如下图: 然而,如果你用的是第三方输入法(百度.搜狗.qq输入法等都是),聚焦文本框弹出键盘时,界面却不会整体上移,导致文本框被软键盘遮挡,如下图: 不仅被遮挡,靠底部的文本框还无法往上拖拽滚至可视区域. 解决办法一:第三方键盘弹出,实现界面也能上移 使用 ionic-plug

iOS-音频和视频

一.视频 视频播放器需要添加MediaPlayer.framework. 视频播放主要提供了两个类,一个MPMoviePlayerController, 另一个是MPMoviePlayerViewController. 视频资源可以从本地获得,也可以从服务器获得. MPMoviePlayerController播放本地视频资源 NSString *path = [[NSBundle mainBundle]pathForResource:@"root" ofType:@"mp4

react-native开发经验

# **RN开发经验** ## 一.环境配置关于环境配置,前辈已有完整的总结:http://tvrn.devops.letv.com/docs/Environment.html **IDE准备:** [AndroidStudio](https://developer.android.com/studio/index.html),[VisualStudioCode](https://code.visualstudio.com/) 如何打造现代化RN开发环境:http://tvrn.devops.l

componentWillReceiveProps详解(this.props)状态改变检测机制

参考资料:http://blog.csdn.net/ElinaVampire/article/details/51813677 大家先看一张关于组件挂载的经典的图片: 下面一一说一下这几个生命周期的意义: getDefaultProps object getDefaultProps() 执行过一次后,被创建的类会有缓存,映射的值会存在this.props,前提是这个prop不是父组件指定的 这个方法在对象被创建之前执行,因此不能在方法内调用this.props ,另外,注意任何getDefaul

手机卫士09_应用程序四种查看_ListView小标题_进程管理

1.悬浮窗体的功能实现: 1.1.应用程序的卸载: 包安装器 packageInstall,包卸载packageruninstall intent.setData(Uri.pare(“package:” + 应用程序包名)) 卸载完之后记得更新list集合,更新适配器. 但是不确定用户是否点了卸载,所以要通过广播获取消息. 并且需要通过代码注册,因为这个广播只在应用管理生效. 要记得addDataSchme(“package”) 接收完广播之后,更新了集合适配器,要记得关闭广播 异常:Concu

iOS之加载等待指示器(工具类)

#import "CXDView.h" @interface CXDView () //动态图 @property (strong, nonatomic) UIImageView *loadingImageView; //提示文字 @property (strong, nonatomic) UILabel *toastLabel; @end @implementation CXDView #pragma mark - 初始化 - (instancetype)init { self =

iOS的launch image --备用

当我们打开一款应用程序的时候,首先映入眼帘的往往并不是程序的主界面,而是经过精心设计的欢迎界面,这个界面通常会停留几秒钟,然后消失.看似很平常的一个小小的欢迎界面,其实还大有讲究. 一.为什么会出现欢迎界面? 程序在启动的过程中需要消耗一些时间,那么在加载出现主界面之前,会出现短暂的黑屏,这实在是很糟糕的一件事情,会给用户一个非常不好的体验.为了缓解用户等待过程中心理的不适与烦躁,欢迎界面闪亮登场了! 用欢迎界面来替代黑屏的等待,可以有效的掩盖耗时阻塞的后台操作,还能向用户展示有效的信息,是非常

IOS网络开发(二)

1 局域网群聊软件 1.1 问题 UDP协议将独立的数据包从一台计算机传输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方所接收到的数据和发送方所发送的数据在内容和顺序上是完全一致的. UDP广播就是建立于UDP协议上的数据传输,当网络中的某一台计算机向交换机或路由发送一个广播数据时,交换机或路由则会将此广播数据发送到其节点下的所有接收者.本案例使用第三方Socket编程框架AsyncUdpSocket框架,基于UDP广播实现一个局域网群聊软件,一个基于UD广播的聊天室程序