注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

ksnowlv的博客

积土成丘,集腋成裘,坚持再坚持!

 
 
 

日志

 
 

IOS6转屏处理  

2013-04-02 16:16:40|  分类: IOS_UI |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
以前的 iOS 程式 (4.0 版以前) 都是用 addSubview 来将 app 的 root view 加到 window 上面,例如下面的作法:
[self.window addSubview:self.viewController.view];

我发现在 iOS 6 上面,这个作法会使 rotation 失效 (iOS 6 以前完全没问题),必须改成这个方式:

    if([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0)

    {

        self.window.rootViewController = self.viewController;

    }

    

    else

    {

        [self.window addSubview:self.viewController.view];

    }


iOS 4 之后才支持self.window.rootViewController = self.viewController;的方式。

另外,相关的ViewController中,如果支持转屏需要添加如下CODE:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

return (interfaceOrientation != UIDeviceOrientationPortraitUpsideDown);

}


- (BOOL)shouldAutorotate {

return YES;

}

说明:如果你想禁止转屏,可以返回NO

- (NSUInteger)supportedInterfaceOrientations

{

    return UIInterfaceOrientationMaskAllButUpsideDown;

}


如果VIEW需要处理转屏,需要添加如下代码处理:

self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

view会自动调整宽和高

要么重写VIEW的- (void) layoutSubviews方法,调整VIEW,添加对应的处理。推荐前者方法,后者方法除非在转屏时会修改重新调整某些UI的精确位置时使用


  评论这张
 
阅读(35)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018