摘要:本文将带你了解IOS开发入门iOS 全局禁止横屏,但视频播放界面选择性横屏的解决办法,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS 全局禁止横屏,但视频播放界面选择性横屏的解决办法,希望本文对大家学IOS有所帮助。
有时我们的APP并没有适配横屏的需求,但是在个别视频播放界面,我们需要在播放视频的时候横屏,退出全屏的时候不能横屏,但是有时候并没有原生API并没有给出解决方案。
当其他界面不支持横屏时:
这个解决方法比较容易
在 APPDelegate.h 文件中增加属性:是否支持横屏
/*** 是否允许横屏的标记 */@property (nonatomic,assign)BOOL
allowRotation;
在 APPDelegate.m 文件中增加方法,控制全部不支持横屏
- (UIInterfaceOrientationMask)application:(UIApplication
*)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{ if (self.allowRotation)
{ return
UIInterfaceOrientationMaskAllButUpsideDown; } return
UIInterfaceOrientationMaskPortrait;}
这样在其他界面想要横屏的时候,我们只要控制 allowRotation 这个属性就可以控制其他界面进行横屏了。
//需在上面#import "AppDelegate.h"AppDelegate *appDelegate =
(AppDelegate *)[[UIApplication sharedApplication]
delegate];appDelegate.allowRotation = YES;//不让横屏的时候 appDelegate.allowRotation
= NO;即可
播放界面横屏
所以这里可以使用 UIWindow 的通知,就可以解决
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(begainFullScreen)
name:UIWindowDidBecomeVisibleNotification
object:nil];//进入全屏[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(endFullScreen) name:UIWindowDidBecomeHiddenNotification
object:nil];//退出全屏
在退出全屏时,增加逻辑让其强制编程竖屏,这样当全屏播放的时候,点击 down("完成") 时,就会自动变成竖屏了。
//
进入全屏-(void)begainFullScreen{ AppDelegate *appDelegate
= (AppDelegate *)[[UIApplication sharedApplication]
delegate]; appDelegate.allowRotation = YES;}//
退出全屏-(void)endFullScreen{ AppDelegate *appDelegate =
(AppDelegate *)[[UIApplication sharedApplication] delegate]; appDelegate.allowRotation
= NO; //强制归正: 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
=UIInterfaceOrientationPortrait; [invocation
setArgument:&val
atIndex:2]; [invocation
invoke]; }}
亦可以建一baseViewController 其他控制器继承base 在base里设置禁止横屏 某一页面需要横屏 设置一下即可
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号