zoukankan      html  css  js  c++  java
  • ios开发屏幕问题

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

    devices那栏上勾选universal即可,完成后会发现有两个.xib文件,但只有一个viewController.因为这是用一个ViewController控制两个.xib文件,苹果官方称最好分开控制 Iphone.xibipad.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 classViewController,则大功告成

     

    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 *)#>];

     

        }

    }

     

     

  • 相关阅读:
    微软推出Silverlight 5.2版本
    C# 安装部署,关于自定义操作,不能被执行。
    SQL_server_2000安装时挂起的解决办法,其实很简单。
    最全Microsoft JET Database Engine(0x80004005)未指定错误的解决方法
    WP博客wordpress,robots.txt写法
    2012年Web设计和开发的15个趋势
    SEO优化应该如何使用nofollow属性
    WordPress如何做SEO?WordPress博客怎样做网站优化。
    windowsXP SP3安装Photoshop CS 3字体输入没反应的问题及解决办法
    打开网页 错误 2147467259 : 错误描述: 未指定的错误 IIS 限XP系统
  • 原文地址:https://www.cnblogs.com/ctaodream/p/3187397.html
Copyright © 2011-2022 走看看