网赢中国专注大数据营销 [会员登录][免费注册][网赢中国下载]我要投稿|加入合伙人|设为首页|收藏|RSS
网赢中国是大数据营销代名词。
网络营销
当前位置:网赢中国 > 行业资讯 > 营销战略 > 网络营销营销战略 > iOS9横竖屏设置的处理方法和实例讲解
iOS9横竖屏设置的处理方法和实例讲解
编辑:李刚 发布时间: 2016-2-24 14:46:00    文章来源:百度百家
网络营销




在一般的视频类APP播放的时候都会支持横屏,这样做的好处就是便于观看。你的项目中支持横屏吗?我们一起了解一下,在iOS9中横竖屏设置的处理方法吧!


支持横竖屏配置


在iOS6以后,如果APP需要支持横屏,需要在xcode设置中General里面进行勾选配置:



配置完成之后,我们可以看一下Info.plist里面的Supported interface orientations选项也相应的改变了。如下图:



当然,我们也可以直接在Info.plist进行配置。


支持横竖屏方法


在iOS6之前我们可以直接用这个方法进行配置:


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


在iOS6之后,这个方法被NS_DEPRECATED_IOS,也就是废弃掉了。废弃了这个方法,苹果相应的也给出了新的方法来代替:


// New Autorotation support.


- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;


- (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;


我们可以看到iOS6之前是一个方法,在iOS6之后变成两个方法了,一个是是否旋转的方法,一个是支持的方向的方法。


实例一:


假设:我们ViewController是直接加载window的self.window.rootViewController上面的。代码如下:


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


// Override point for customization after application launch.


self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


ViewController *vc = [[ViewController alloc] init];


self.window.rootViewController = vc;


[self.window makeKeyAndVisible];


return YES;


}


如果我们要是想支持上面General里勾选的方向(竖屏、横屏向左已经横屏向右)该如何实现呢?首先,我们应该设置让他支持旋转,然后在设置支持的方向。代码如下:


//支持旋转


-(BOOL)shouldAutorotate{


return YES;


}


//支持的方向


- (UIInterfaceOrientationMask)supportedInterfaceOrientations {


return UIInterfaceOrientationMaskAllButUpsideDown;


}


其中UIInterfaceOrientationMask是一个枚举:


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),


} __TVOS_PROHIBITED;    


可以根据自己的需求来选择。上面我们说了假设这个条件,如果rootViewController上导航,我们直接在ViewController里面设置,这个方法就不灵了。(大家可以自己测试一下)


实例二:


为什么是导航上面的方法就不灵了呢?原因很简单,我们没有设置导航支持的方向。别忘了UINavigationController也是UIViewController的子类。需要受到同样的待遇的。


//支持旋转


-(BOOL)shouldAutorotate{


return YES;


}


//支持的方向


- (UIInterfaceOrientationMask)supportedInterfaceOrientations {


return UIInterfaceOrientationMaskAllButUpsideDown;


}


这样设置之后,即使我们push进去的UIViewController没有实现上面的连个方法,也是可以支持横屏的。也就是说,我们push的所有都支持横屏。这个做法是不是很暴力!


实例三:


有些童鞋会问了,如何控制每个界面支持的方向呢?这也是可以办到的,在GGPublicNavigationViewController不能写死支持哪个。我们可以这么写:


-(BOOL)shouldAutorotate{


return [self.topViewController shouldAutorotate];


}


//支持的方向


- (UIInterfaceOrientationMask)supportedInterfaceOrientations {


return [self.topViewController supportedInterfaceOrientations];;


}


self.topViewController是当前导航显示的UIViewController,这样就可以控制每个UIViewController所支持的方向啦!


好啦,关于iOS9中横竖屏的处理就说这么多吧!(其实iOS7、iOS8也是这么设置的)如果你觉得文章还不错,分享一下吧!




网络营销
编辑推荐
图片行业资讯
  • - 倾力打造2016新版直通车提高质量得分的方法和权重
  • 阿里的运营平时都干些啥?你离高阶运营还有多远?
  • 梅花网研究院:2015旅游行业广告投放报告
  • 去年那些点赞数10w+的文章,都写了些什么
  • 这家店1年跻身女装Top50
营销资讯搜索
网络营销
推荐工具
    热点关注
    网络营销
    网络营销
    网络营销
    网络营销
     

    大数据营销之企业名录

    网络营销之邮件营销

    大数据营销之搜索采集系列

    大数据营销之QQ号采集

    大数据营销之QQ精准营销

    大数据营销之QQ消息群发

    大数据营销之空间助手

    大数据营销之QQ联盟

    大数据营销之QQ群助手
     
    设为首页 | 营销资讯 | 营销学院 | 营销宝典 | 本站动态 | 关于网赢中国 | 网赢中国渠道 | 网站RSS | 友情链接
    本站网络实名:网赢中国  国际域名:www.softav.com  版权所有 2004-2016  深圳爱网赢科技有限公司
    邮箱:web@softav.com 电话:+86-755-26010839(十八线) 传真:+86-755-26010838
    在线咨询:点击这里给我发消息 点击这里给我发消息 点击这里给我发消息  点击这里给我发消息  点击这里给我发消息

    深圳网络警
    察报警平台
    公共信息安
    全网络监察
    经营性网站
    备案信息
    不良信息
    举报中心
    中国文明网
    传播文明
    分享