iOS5及iOS6左右竖屏同时支持

iOS6负丢掉了-
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation
)interfaceOrientation方法,为了以支持iOS5与iOS6系统的横竖屏切换,可用如齐代码

  1. 每当工程文件被安排支持横竖屏功(Device
    Orientation),可以安装设备iPhone或iPad

  2. 于AppDelegate.h中上加以下属性

1 info.plist中Supported interface orientations中加入所有方向的支持
2 AppDelegate中加入方法 -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ return UIInterfaceOrientationMaskAll;} iOS6中为了后续支持任何方向的旋转
3 任何你想控制旋转的界面中加入方法
// iOS6.0
-(NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskPortrait;  // 可以修改为任何方向
}

-(BOOL)shouldAutorotate{

    return YES;
}

// iOS5.0
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{

    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);  // 可以修改为任何方向
}
这样你的app就可以同时支持iOS5和iOS6系统的横竖屏切换了
//该片段来自于http://outofmemory.cn

@property (nonatomic, assign) UIInterfaceOrientationMask interfaceOrientation;

3.以AppDelegate.m中实现代理方:

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
{
    return self.interfaceOrientation;
}

4.在对应viewcontroller中调用appdelegate中interfaceOrientation属性,建议于viewWillAppear中调用,且当由定义之基类viewcontroller中采用,使用子类去再写该方式:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    AppDelegate appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    appDelegate.interfaceOrientation = UIInterfaceOrientationMaskPortrait;  //  横屏
}

5.如果需要在某某页面修改横竖屏属性,请复第4步

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图