本文来源地址:http://www.osjoin.com/ios/67.html
项目搞到这个时候,就有点费劲了。
只要你看了洲洲哥的这个文章就木事的啦。
demo地址:https://github.com/7General/shouldAutorotate
情况描述
iOS中vc
里放了一个webview
这个webview里加载一个连接h5。这个h5中有一个video
和一些其他的标签。当让这里的video标签才是重要的。
要求
:在点击视屏播放的时候,改视屏要横着全屏播放。当点击完成或者缩小屏幕的时候的就要回到出事位置了。
1:先来看看h5的代码
<video id="myVideo" width="100%" height="400px"
poster="/ItaxerGS/ENTYPATH/files/enty/EF20161028548728693668.png"
src="http://ysyc-winys.chinacloudapp.cn:7001/ItaxerGS/ENTYPATH/files/enty/EF20161028548448333271.mp4" controls autobuffer >
video>
这里看当然要看主要的代码了。
看着没问题吧??
错!!!!
问题来了。这里播放是可以全屏播放,但是是竖着播放的。不和要求啊。。。。
2:分析一下原因白
首先一点击播放就全屏播放,但是是竖着的,似乎不是那么好。要是把当前的window
横着显示尼,就可以完成要求。
在看代码之前,先所一下两个重要的通知,
1:UIWindowDidResignKeyNotification
进入全屏
2:UIWindowDidBecomeHiddenNotification
退出全屏
对,这两个很重要!!!!
看看oc
代码
首先要在你想要翻转的页面上添加上添加如下代码
当然在viewWillAppear
还是在viewDidLoad
列为看官就凭自己的想法了。
-(void)RegeistNoticeCenter {
//将要进入全屏
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFullScreen) name:UIWindowDidResignKeyNotification object:nil];
//退出全屏
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endFullScreen) name:UIWindowDidBecomeHiddenNotification object:nil];
}
两个实现方法
/*进入全屏/
-(void)startFullScreen {
NSLog(@"进入全屏");
UIApplication *application=[UIApplication sharedApplication];
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight];
application.keyWindow.transform=CGAffineTransformMakeRotation(M_PI/2);
CGRect frame = [UIScreen mainScreen].applicationFrame;
application.keyWindow.bounds = CGRectMake(0, 0, frame.size.height + 20, frame.size.width);
}
/*退出全屏/
-(void)endFullScreen {
NSLog(@"退出全屏XXXX");
UIApplication *application=[UIApplication sharedApplication];
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight];
CGRect frame = [UIScreen mainScreen].applicationFrame;
application.keyWindow.bounds = CGRectMake(0, 0, frame.size.width, frame.size.height + 20);
[UIView animateWithDuration:0.25 animations:^{
application.keyWindow.transform=CGAffineTransformMakeRotation(M_PI * 2);
}];
}
这里注意,我在进入全屏的时候给宽度加了20。在退出全屏的时候,宽度同样加了20。
各位看官留意
在进入全屏的时候宽度加20是为了解决在全屏播放视频时两边的留白
问题。
在退出全屏播放视频就是让当前的widow和之前的一样咯
在iOS8.4和8.1亲测试木问题的
当让你要是和《iOS-重力感应》就更完美了
一摇动手机 就可以横着全屏播放咯。。。
如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
也可以添加洲洲哥的微信公众号
更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送: