【转】IOS7 MPMoviePlayerViewController横屏显示
在应用程序中用到MPMoviePlayerViewController时,有时需要保持应用程序为竖屏状态,而视频播放器显示为横屏,如何做呢?如果采用强制横屏的方法,应用审核的时候是不会通过的,因为该方法已经被苹果禁止了。主要代码如下:
- - (void)addVideoViewController
- {
- MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc] init];
- moviePlayerViewController.view.frame = CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width);
- moviePlayerViewController.view.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2);
- CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2);
- [moviePlayerViewController.view setTransform:transform];
- [self.view addSubview:moviePlayerViewController.view];
- }
MPMoviePlayerViewController加入到它的父ViewController中通过
CGAffineTransformMakeRotation()方法使得视频播放器旋转90度,这样就可以横屏了,如下图:
小伙伴们!看出问题来了没有,状态栏显示了俩个,这个怎么弄呢?
其实在IOS7中,每个ViewController都会带上一个StatusBar,上面的那个StatusBar是视频播放器带的,视频播放器旋转,状态栏也跟着旋转。左侧的StatusBar是视频播放器的父ViewController带的,因为父ViewController没有旋转,所以显示在左侧。解决这个问题就需要在显示播放器的时候隐藏左侧的StatusBar,退出播放器时显示左侧的StatusBar,具体方法如下:
IOS7中就需要用到如下俩个方法:
(1) - (BOOL)prefersStatusBarHiddenNS_AVAILABLE_IOS(7_0);
(2) - (void)setNeedsStatusBarAppearanceUpdateNS_AVAILABLE_IOS(7_0);
在父ViewController中重写- (BOOL)prefersStatusBarHidden方法,主要代码如下:
- - (BOOL)prefersStatusBarHidden
- {
- return isHiddenStatusBar;
- }
- - (void)showStatusBar
- {
- isHiddenStatusBar = NO;
- if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
- [self prefersStatusBarHidden];
- [self setNeedsStatusBarAppearanceUpdate];
- }
- }
- - (void)hideStatusBar
- {
- isHiddenStatusBar = YES;
- if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
- [self prefersStatusBarHidden];
- [self setNeedsStatusBarAppearanceUpdate];
- }
- }
(1) isHiddenStatusBar是定义的一个变量,判断是否隐藏StatusBar
(2) - (void)showStatusBar是自定义的一个方法,在需要显示状态栏的时候调用该方法
(3) - (void)hideStatusBar是自定义的一个方法,在需要隐藏状态栏的时候调用该方法
至此MPMoviePlayerViewController横屏显示功能就实现了。这是在IOS7上测试通过的结果,IOS6还没有找出相应的方法可以隐藏左侧的状态栏
http://blog.csdn.net/chchong1234/article/details/24649083?utm_source=tuicool
【转】IOS7 MPMoviePlayerViewController横屏显示的更多相关文章
- cocos2d-x在IOS7下面文字显示异常的解决办法 CGBitmapContextCreate: unsupported parameter combination
首先定位到libs-->cocos2dx-->platform-->iOS-->CCImage.mm 找到这个文件. 打开CCImage.mm文件,定位到如下函数: [cp ...
- 自定义的UIAlertView不能在iOS7上正常显示
众所周知,当伟大的iOS7系统发布后,表扬的一堆.谩骂的也一片,而对于我们程序员来说最关心的莫过于低版本系统上的程序在搞版本系统上的兼容性问题了. 在iOS6.1几之前,当我们想要做一些提醒用户或临时 ...
- IOS 7 自定义的UIAlertView不能在iOS7上正常显示
本文转载至 http://blog.csdn.net/hanbing861210/article/details/13614405 众所周知,当伟大的iOS7系统发布后,表扬的一堆.谩骂的也一片,而对 ...
- css3 移动端页面全屏旋转,横屏显示。
css3旋转模拟手机横屏. 当手机不能自动旋转时,或有特殊需求.用css3 transform,实现横屏展示. 注意: 相关样式注意横屏的显示. touch的手势方向没有变,依旧是原来方向,若有相关插 ...
- iOS部分页面横屏显示
在iOS系统支持横屏顺序默认读取plist里面设置的方向(优先级最高)等同于Xcode Geneal设置里面勾选application window设置的级别次之 然后是UINavigationcon ...
- 2.0.4 CCLabelTTF在ios7下不显示的问题
要修改框架lib目录里的 CCImage.mm,就是把浮点值取了个整,之前的浮点形导致绘制失败: 在_initWithString这个方法里把如下代码替换一下就行了: //////////////// ...
- mui禁止横屏显示,仅支持竖屏显示
mui.plusReady(function () { plus.screen.lockOrientation("portrait-primary"); });
- Android——横屏和竖屏的切换,以及明文密码的显示
查看API文档: android.content.pm.ActivityInfo 在手机的使用中,我们要根据不同的需求来改变屏幕的显示方向,一般在浏览信息时是竖屏,在玩游戏的时候就要切换到横屏. ...
- IOS7学习之路二(处理ios6到ios7后UITableView的两个显示问题)
1.在ios6开发的项目,当用ios7的虚拟机显示的时候会出现UINavigationItem遮挡TableView的问题: 下面是对比显示效果: 我的处理方法是: 在UITableViewContr ...
随机推荐
- 深入理解UITableView
基本介绍 UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped.这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照 ...
- IOS 真机调试以及发布应用 2
参考网站:http://my.oschina.net/u/1245365/blog/196420 已经有开发证书的直接跳过第一步 第一步:申请“开发证书” 进入苹果开发者99美元账号: 选择:Cert ...
- 09_linux下安装Nvidia显卡驱动
下载驱动 去官网找去,哈哈o(^▽^)o 安装kernel source [root@localhost ~]# yum install kernel-devel 如果还不行,试试下面的 [root@ ...
- CSS,点击去除虚线边框代码
- 使用HTML+CSS,jQuery编写的简易计算器
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- thinkphp整合系列之支付宝RSA加密方式
thinkphp整合系列之支付宝RSA加密方式上篇博客写的是MD5加密方式:thinkphp整合系列之支付宝MD5加密方式扫码支付http://baijunyao.com/article/75 但是呢 ...
- Ecshop 数据库操作方法getRow、getAll、getOne区别
ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现.这样做的好处是实现非常轻量,大大减小了分发包的文件大小.另外,当网站需要做memcached缓存时,也可以 ...
- Phalcon 的分流bootstrap 设计 主程序入口
<?php use \Phalcon\DI\FactoryDefault as PhDi; error_reporting(E_ALL); date_default_timezone_set(' ...
- struts.xml详细配置
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...
- vector list array deque
因此在实际使用时,如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面 的原则: 1.如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector 2.如果你需要大量的插入和 ...