1:首先大家有点懵,其实好好研究下就可以
- 控制横竖屏Xcode-General-Device Orientation进行选择可以进行的旋转方向。
*另一个就是代码去控制
Appdelegate.m类里面进行生命周期添加方法
Appdelegate.h添加属性isShouAutoRotate-BOOL值
-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (self.isShouAutoRotate == 1) {
return UIInterfaceOrientationMaskLandscape;
}else{
return (UIInterfaceOrientationMaskPortrait);
}
}
//可以添加这个,设置是否可以进行横竖屏旋转
//一般情况下子类界面进行横竖屏旋转就重写方法就好了,不需要在这里面添加了
//- (BOOL)shouldAutorotate
//{
// if (self.isShouAutoRotate == 1) {
// return YES;
// }
// return NO;
//}
Appdelegate.m进行设置全局的横竖屏。
在需要的控制器里面进行添加,我们项目是视频类App,需求就是进行横竖屏界面的旋转,进入就是横屏模式。
number=1 可以旋转,左右可以进行旋转
number=0 禁止旋转
这是ios6之后新增的一组枚举值,使用组合时更加方便,使用时根据返回值类型选择正确的格式。这个属性最管用,其余的俩个不是很好用。
/*typedef NS_OPTIONS(NSUInteger, UIInterfaceOrientationMask) {
UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait),
UIInterfaceOrientationMaskLandscapeLeft = (1 << UIInterfaceOrientationLandscapeLeft),
UIInterfaceOrientationMaskLandscapeRight = (1 << UIInterfaceOrientationLandscapeRight),
UIInterfaceOrientationMaskPortraitUpsideDown = (1 << UIInterfaceOrientationPortraitUpsideDown),
UIInterfaceOrientationMaskLandscape = (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
UIInterfaceOrientationMaskAll = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown),
UIInterfaceOrientationMaskAllButUpsideDown = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
} */
-
(void)appdelegateisShouAutoRotate:(int)number
{
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
appdelegate.isShouAutoRotate = number;
} -
(BOOL)shouldAutorotate
{
return ?;
}
第一个方法不是很建议使用.代码进行控制是最方便的。
网友评论