1. 程序要要支持Iphone 和 ipad,所以首先必需创建一通用程序,这一操作只要在创建程序时在

devices那栏上勾选universal即可,完成后会发现有两个.xib文件,但只有一个viewController类.因为这是用一个ViewController控制两个.xib文件,苹果官方称最好分开控制 Iphone.xib和ipad.xib,也就是再写一个ViewController,但这样做也就像写两个应用程序一样的,只不过是同时进行

2. 由于Iphone5的屏幕要长一点,我也用同样的方法再建一个phone5的.xib文件,让它和ipad,其他类型的iphone关联到同一个viewController,在这里创建.xib文件时要注意来了,因为xcode没有单独创建.xib的操作(我没找到该操作),所以我们可以先建一个object-c的文件,设置它的父类为UIController 这样就会常见出一个.xib文件和一个.h及.m文件,我们只要用.xib文件,其他的删除。

3. 然后将该文件关联到同一个ViewController,操作:

先选中该Iphone5.xib文件 ,然后在 左边有个FileOWn   点击它,在最右边再点击show the identify inspector 配置其custom class为ViewController,则大功告成

4.完成上述操作后就可以用一个ViewController操作了,加载时加入些代码

如下:

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

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

//下面的代码判断设备是否时IPhone5

BOOL iphone5 = [UIScreen instanceMethodForSelector:@selector(currentMode)]?CGSizeEqualToSize([[UIScreen mainScreen]currentMode].size, CGSizeMake(640, 1136)):NO;

//是Iphone系列还是Ipad系列

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];

} else {

if (iphone5) {

//  self.viewController = []

}

self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];

}

self.window.rootViewController = self.viewController;

[self.window makeKeyAndVisible];

return YES;

}

5.屏幕旋转时就不用多说了,原理一样,用另外的一个.xib显示就行了,本来ios中有个自适应属性,但只能支持ios6.0,而我们的软件要支持Ios5,此外自适应 对于复杂的屏幕也控制不了

6.当屏幕进行 旋转后加入下面的代码

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{

//如果将要旋转到横屏

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {

//加载横向的.xib文件

[[NSBundle mainBundle]loadNibNamed:<#(NSString *)#> owner:<#(id)#> options:<#(NSDictionary *)#>];

}else{

//加载纵向的.xib文件

[[NSBundle mainBundle]loadNibNamed:<#(NSString *)#> owner:<#(id)#> options:<#(NSDictionary *)#>];

}

}

ios开发屏幕问题的更多相关文章

  1. iOS开发——屏幕适配篇&Masonry详解

    Masonry详解 前言 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-ip ...

  2. iOS开发——屏幕适配篇&autoResizing autoLayout和sizeClass

    autoResizing autoLayout和sizeClass,VFL,Masonry详解 1. autoResizing autoresizing是苹果早期的ui布局适配的解决办法,iOS6之前 ...

  3. iOS开发——屏幕尺寸适配

    对于屏幕尺寸适配,目前先指竖屏的方式适合方式1和2. 1.控件尺寸写死的方式,偶尔会用到屏幕的宽度和高度. UILabel *holdLabel = [[UILabel alloc]initWithF ...

  4. iOS - 开发屏幕及视图层次

    //屏幕视图分层 .UIWindow .UILayoutContainerView .UITransitionView .UIViewControllerWrpaperView .UILayoutCo ...

  5. iOS开发点滴:iPhone屏幕适配

    最近开始做iOS开发,遇到一些小问题和解决方法,记录下.   今天是iPhone屏幕适配 iPhone5出来之后屏幕就有iPhone就有了2种尺寸:3.5寸和4寸,xcode 5 的IB设计器里面界面 ...

  6. IOS开发之绝对布局和相对布局(屏幕适配)

    之前如果做过Web前端页面的小伙伴们,看到绝对定位和相对定位并不陌生,并且使用起来也挺方便.在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对定位和相对定位有所不同但又有相似之处.下 ...

  7. iOS开发 - 不进入待机(屏幕保持唤醒)---UIApplication学习

    iOS开发 - 不进入待机(屏幕保持唤醒)---UIApplication学习 如果你不希望应用运行时 iPhone 进入锁屏待机状态,加入下面这行代码即可 [[UIApplication share ...

  8. iOS开发中获取视图在屏幕上显示的位置

    在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可 ...

  9. iOS开发技巧 - Size Class与iOS 8多屏幕适配(一)

    0. 背景: 在iOS开发中,Auto Layout(自动布局)能解决大部分的屏幕适配问题. 但是当iPhone 6和iPhone 6 Plus发布以后, Auto Layout已经不能解决复杂的屏幕 ...

随机推荐

  1. SVN提交忽略*.class、.classpath、.mymetadata、.project、.settings、.myeclipse和其他非版本控制文件

    1.忽略*.class 在TortoiseSVN -->setting(设定)--规设置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVrZTY ...

  2. js 正则练习之语法高亮

    原文:js 正则练习之语法高亮 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解.今天就分析下 次碳酸钴 和 Barret Lee 语法高亮实现. 先 ...

  3. EasyUI Combobox 默认设置

    /** *绑定运营商,默认设置, 演出CMCC, 传统的价值观念1 */ $('#operatingId').combobox({ url:'data_url', valueField:'id', t ...

  4. 汽车之家购买价格PC真正的原因阿拉丁

        网行业风起云涌,先是6月3号汽车之家天价竞购百度PC阿拉丁.接着今天又有消息说易车拿下百度移动阿拉丁.易车拿下百度移动阿拉丁能够想象.但PC阿拉丁被向来不屑流量购买,以自主流量自居的汽车之家拿 ...

  5. jQuery组织您钞四----jQuery操作DOM

    一.采用jQuery创建节点 节点是DOM基础设施.依据DOM产品规格,Node是一个很宽泛的概念,包含元素.属性.正文.档..实际开发过程中,要创建动态内容,主要操作的节点包括元素. 属性和文本. ...

  6. outlook自动备份

    在 这里 下载 http://support.microsoft.com/kb/238782

  7. MVC02

    1.在EF5.0修改实体的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误db.Configuration.ValidateOn ...

  8. white-space的值

    white-space的值:normal 默认.空白会被浏览器忽略.pre 空白会被浏览器保留.其行为方式类似 HTML 中的 标签.nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 标签 ...

  9. 第4章1节《MonkeyRunner源码剖析》ADB协议及服务: ADB协议概览OVERVIEW.TXT翻译参考(原创)

    天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...

  10. 安卓Monkey源码分析之运行流程

    在<MonkeyRunner源码分析之与Android设备通讯方式>中,我们谈及到MonkeyRunner控制目标android设备有多种方法,其中之一就是在目标机器启动一个monkey服 ...