zoukankan      html  css  js  c++  java
  • 关于iphone和ipad横屏竖屏 适配问题

    首先 先在viewWillAppear 里面 注册通知

    - (void)viewWillAppear:(BOOL)animated

    {

        [super viewWillAppear:animated];

        //注册屏幕旋转 消息通知

        [[NSNotificationCenter defaultCenter] addObserver:self

                                                 selector:@selector(changeFrames:)

                                                     name:UIDeviceOrientationDidChangeNotification

                                                   object:nil];

        }

    viewDidLoad 初始化控件 

    收到通知后

    //收到通知后改变view坐标

    -(void)changeFrames:(NSNotification *)notification

    {

        CGRect rect = [UIScreen mainScreen].bounds;

        

        if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait

            || [[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown)

        {

            NSLog(@"portrait");

            _fancyTabBar.frame=CGRectMake(rect.size.width-300,rect.size.height-300, 300, 300);

        }

        else

        {

            NSLog(@"横屏");

            _fancyTabBar.frame=CGRectMake(rect.size.height-40,rect.size.width-550, 300, 300);

        }

    }

    如果是ipad 版

    //收到通知后改变view坐标

    -(void)changeFrames:(NSNotification *)notification

    {

        CGRect rect = [UIScreen mainScreen].bounds;

        

        if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait)

        {

            NSLog(@"竖屏home在下");

            _fancyTabBar.frame=CGRectMake(rect.size.width-550,rect.size.height-550, 600, 700);

        }

        else if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown)

        {

            NSLog(@"竖屏home在下");

            _fancyTabBar.frame=CGRectMake(rect.size.width-550,rect.size.height-550, 600, 700);

            

        } else if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft ){

            

            NSLog(@"横屏home在左");

            _fancyTabBar.frame=CGRectMake(rect.size.height-300,rect.size.width-800, 600, 600);

            

        } else{

            

            NSLog(@"横屏home在右");

            _fancyTabBar.frame=CGRectMake(rect.size.height-300,rect.size.width-800, 600, 600);

        }

        

    }

  • 相关阅读:
    对中级 Linux 用户有用的 20 个命令
    对 Linux 新手有用的 20 个命令
    有趣的JavaScript原生数组函数
    编写更好的CSS
    一套名企WEB前端面试题,不提供答案
    探索JavaScript中Null和Undefined的深渊
    30个你必须记住的CSS选择符
    揭秘JavaScript中谜一样的this
    2013年JavaScript开发人员调查结果
    给HTML初学者的三十条最佳实践
  • 原文地址:https://www.cnblogs.com/panfeng1104/p/4496974.html
Copyright © 2011-2022 走看看