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

     

        }

    }

     

     

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/ctaodream/p/3187397.html
Copyright © 2020-2023  润新知