屏幕旋转

IOS5以及之前的版本通常重写方法:

// Applications should use supportedInterfaceOrientations and/or shouldAutorotate..

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation NS_DEPRECATED_IOS(2_0, 6_0) __TVOS_PROHIBITED;


每个UIViewController自己控制自己是否旋转。


IOS6及以后的版本通常重写方法:

// New Autorotation support.

- (BOOL)shouldAutorotateNS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;

- (UIInterfaceOrientationMask)supportedInterfaceOrientationsNS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;

// Returns interface orientation masks.

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentationNS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;


UIViewController是否旋转不是自己直接控制,而是在根视图控制器(直接属于window的那个控制器)来控制所有的视图控制器,如果想让最上面显示的视图控制器来决定是否支持旋转的话,可以在根视图控制器中调用最上层控制器的方法

- (BOOL) shouldAutorotate{

    return self.topViewController.shouldAutorotate;

}

-(UIInterfaceOrientationMask) supportedInterfaceOrientations{

    return self.topViewController.supportedInterfaceOrientation;

}


手动旋转:
IOS5以及以前的版本手动旋转一般采用假旋转,利用CGAffineTransformMakeRotation来实现。

IOS6以及以后的版本手动旋转一般采用先设置StatusBarOrientation,然后再设置视图与StatusBarOrientation一致





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值