ios6以后 xcode6屏幕旋转总结

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;

}

 

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

转载于:https://my.oschina.net/u/1262980/blog/679316

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值