您的位置:首页 > 移动开发 > IOS开发

iOS两个强制旋转屏幕的方法

2015-07-22 17:43 585 查看
第一个:

[cpp] view
plaincopy

// 状态栏动画持续时间

CGFloat duration = [UIApplication sharedApplication].statusBarOrientationAnimationDuration;

[UIView animateWithDuration:duration animations:^{

// 修改状态栏的方向及view的方向进而强制旋转屏幕

[[UIApplication sharedApplication] setStatusBarOrientation:_bottomView.landscapeModel ? UIInterfaceOrientationLandscapeRight : UIInterfaceOrientationPortrait];

self.navigationController.view.transform = _bottomView.landscapeModel ? CGAffineTransformMakeRotation(M_PI_2) : CGAffineTransformIdentity;

self.navigationController.view.bounds = CGRectMake(self.navigationController.view.bounds.origin.x, self.navigationController.view.bounds.origin.y, self.view.frame.size.height, self.view.frame.size.width);

}];

第二个:

非arc:

[cpp] view
plaincopy

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {

[[UIDevice currentDevice] performSelector:@selector(setOrientation:)

withObject:(id)UIInterfaceOrientationLandscapeRight];

}

arc下:

[cpp] view
plaincopy

if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {

SEL selector = NSSelectorFromString(@"setOrientation:");

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];

[invocation setSelector:selector];

[invocation setTarget:[UIDevice currentDevice]];

int val = UIInterfaceOrientationLandscapeRight;

[invocation setArgument:&val atIndex:2];

[invocation invoke];

}
http://blog.csdn.net/yiyaaixuexi/article/details/8035014
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: