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);

        }

        

    }

  • 相关阅读:
    Android源码剖析之Framework层进阶版(Wms窗口管理)
    如何让项目中的代码更易于维护
    Android源码剖析之Framework层实战版(Ams管理Activity启动)
    node.js学习路线图
    让你的公众号拥有AI能力--微信对话开放平台
    Android跨平台投屏软件(无需root)--scrcpy
    微信H5支付申请相关问题
    Bmob后端云实现无后端开发APP
    微信公众号申请相关问题
    iOS企业包下载安装
  • 原文地址:https://www.cnblogs.com/panfeng1104/p/4496974.html
Copyright © 2011-2022 走看看