文档章节

ios6以后 xcode6屏幕旋转总结

L
 LeviX
发布于 2016/05/22 14:38
字数 593
阅读 6
收藏 0

1.如果不通过代码来进行控制,采用XCode全局控制的方法 可以在项目属性的

                                    图1

里面进行设置,同时,如果同时支持IPAD和Iphone 需要检查一下info里面的

                                                    图2

这两项,这两项可以分别来控制iPhone和Ipad屏幕旋转方法。

 

2.使用代码控制,

首先先建议,如果要使用代码来控制APP的旋转,首先先去掉上面两图的所有选项,如图1,去掉四个方向的所有勾选,图2中,去掉红圈中所有的子项。

因为程序中是优先按照上述设置来进行屏幕旋转控制,所以如果你不这么做 ,可能会出现设置选项和代码里面控制产生冲突,在实际测试中可能会出现各种莫名其妙的旋转问题

(之前因为图2中ipad的子项没有去掉,导致在ipad中测试的时候,出现各种布局错误和旋转不按照代码设定进行)

 

使用代码控制有两种方法

1.全局控制屏幕旋转支持的方法:

在appdelegate里面添加下面的方法,示例代码为只支持竖屏

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
    return UIInterfaceOrientationMaskPortrait;
}

 

使用该方法可以直接统一程序所有页面支持的旋转方向,之后只需在后面的viewController重写

- (BOOL)shouldAutorotate

{

    return NO;

}

就可以控制该viewController是否旋转了

如果说程序支持多个方向的旋转,还可以在viewController中设置默认viewController在出现时屏幕的方向,如下代码,该viewController则是以默认竖屏启动

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

    return UIInterfaceOrientationPortrait;      

}

2.局部控制

使用该方法就是在每个viewController都重写下面3个方法,这样做虽然比较繁琐,但是可以精确的控制每一个viewController的旋转方向,同时还可以通过控制

shouldAutorotate的返回值来实时的控制viewController是否可以旋转(如按下某个按钮屏幕就不能旋转了 ,此时返回NO就可以了)

- (BOOL)shouldAutorotate

{

    return NO;

}

- (NSUInteger)supportedInterfaceOrientations

{

    return UIInterfaceOrientationMaskPortrait;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

    return UIInterfaceOrientationPortrait;

}

 

使用该方式的好处就是可以根据自己的程序需求,根据程序参数来实时的修改屏幕旋转参数

© 著作权归作者所有

共有 人打赏支持
L
粉丝 0
博文 4
码字总数 2116
作品 0
成都
程序员
私信 提问
iOS系统自带的 **UIAlertView** 以及 屏幕自动旋转的实现

iOS系统自带的 UIAlertView 自动旋转的实现 这里主要解析 UIAlertView 的几个关键功能的实现: 随着设备屏幕的旋转而旋转; Alert弹出框,使用UIWindow来实现,就是说,不用依赖于当前显示在...

shede333
2015/05/21
0
0
iOS8开发~UI布局(一)初探Size Class

一、新特性Size Class介绍 随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class。Size Class配合Auto Layout可以...

sea_god
2015/01/26
0
0
ios_随手篇2_关于ios5/ios6屏幕旋转问题

想必控制屏幕旋转是很多人比较关系的吧!有的人应该知道ios6并不支持 shouldAutorotateToInterfaceOrientation 而强制打开xocde的屏幕旋转方向控制,会使得有一些控件在横向的时候有错位!(...

Nick-young
2012/11/27
0
0
iOS6不支持shouldAutorotateToInterfaceOrientation

发现 b2c交易在ios6上webview随屏幕旋转了,但是b2c支持横屏的,原因是ios6的委托 iOS6下的 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientat...

熊小芳
2013/04/01
0
0
屏幕方向的相关方法

在iOS应用开发过程中,经常会遇到设置屏幕方向,或者根据屏幕方向改变界面的时候,所以现在就来说一下屏幕方向的那些事情。 关于方向,经常会遇到以下的两个对象: 1.UIDeviceOrientation(机...

LouDev
2014/02/25
906
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
16分钟前
2
0
藏在正则表达式里的陷阱

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所...

前端小攻略
18分钟前
0
0
TensorFlow的基础概念01

概念: TensorFlow是一个深度学习框架,人人都能实现机器学习。 import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'import tensorflow as tf#导入对应的TensorFlow#输出Hello W...

怪咖先生forever
18分钟前
0
0
关联更新,关联查询

关联更新 update A,B SET A.c1=B.c1,A.c2=B.c2 where A.id=B.id and ... update A inner join on A.id=B.id set A.c1=B.c1,A.c2=B.c2 where... 关联查询 交叉连接(cross join),内连接(inner ......

关元
22分钟前
0
0
django的环境搭建及启用

Pycharm社区版不像商业版那样可以直接创建django工程,需要通过一下步骤创建: 新建一个用于Django开发的虚拟环境 打开命令窗口 新建虚拟环境: conda create -n env_name python=3.6 查看系...

davidwbnu
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部