码迷,mamicode.com
首页 > 其他好文 > 详细

屏幕旋转时,遇到的问题

时间:2014-08-15 19:24:39      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:blog   http   os   io   for   问题   log   size   

1,ios6屏幕旋转,所有被push出来的controller的旋转属性都由root controller中以下函数
- (NSInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate {
    return YES;
}
决定,被push出来的controller的旋转属性都被root controller限定好了。如果某个controller需要独立的旋转属性,需要以present的方式推出这个controller,因为以present的方式推出的controller会被当作是一个独立的root controller。如果尝试动态修改root controller的旋转属性,来满足被push出来的controller的个性话旋转要求,被证实部分有效(比如,root controller 可以旋转,要限定push出来的子controller只支持竖屏的方式,我们在弹出子controller前,将root controller的旋转属性设置为只支持竖屏,子controller被push出来后,确实只支持竖屏,但当root controller在横屏时push这个子controller时,子controller也是横屏显示的,旋转为竖屏后,不再支持转回横屏);

2,UINavgationController 与它的rootcontroller在横屏下的frame关系;
通过观察程序运行时的log,发现:
rootController.view的frame是
origin=(x=0, y=0) size=(width=480, height=300)
而rootController.navigationController.view的frame是
origin=(x=0, y=0) size=(width=320, height=480),仍然与竖屏的尺寸是一样的,这时,可以通过以下方法将frame转换:
CGRect tmpRect = CGRectApplyAffineTransform(self.navigationController.view.frame, self.navigationController.view.transform );
转换后的尺寸为:origin=(x=0, y=-320) size=(width=480, height=320)。宽和高都正常了,origin自行调整下就ok了。

 

 

原文地址:http://blog.163.com/it__man/blog/static/137199904201301912616555/

屏幕旋转时,遇到的问题,布布扣,bubuko.com

屏幕旋转时,遇到的问题

标签:blog   http   os   io   for   问题   log   size   

原文地址:http://www.cnblogs.com/gaoenjoy/p/3915431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!