在应用程序中用到MPMoviePlayerViewController时,有时需要保持应用程序为竖屏状态,而视频播放器显示为横屏,如何做呢?如果采用强制横屏的方法,应用审核的时候是不会通过的,因为该方法已经被苹果禁止了。主要代码如下:

  1. - (void)addVideoViewController
  2. {
  3. MPMoviePlayerViewController *moviePlayerViewController = [[MPMoviePlayerViewController alloc] init];
  4. moviePlayerViewController.view.frame = CGRectMake(0, 0, self.view.bounds.size.height, self.view.bounds.size.width);
  5. moviePlayerViewController.view.center = CGPointMake(self.view.bounds.size.width/2, self.view.bounds.size.height/2);
  6. CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2);
  7. [moviePlayerViewController.view setTransform:transform];
  8. [self.view addSubview:moviePlayerViewController.view];
  9. }

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方法,主要代码如下:

  1. - (BOOL)prefersStatusBarHidden
  2. {
  3. return isHiddenStatusBar;
  4. }
  5. - (void)showStatusBar
  6. {
  7. isHiddenStatusBar = NO;
  8. if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
  9. [self prefersStatusBarHidden];
  10. [self setNeedsStatusBarAppearanceUpdate];
  11. }
  12. }
  13. - (void)hideStatusBar
  14. {
  15. isHiddenStatusBar = YES;
  16. if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
  17. [self prefersStatusBarHidden];
  18. [self setNeedsStatusBarAppearanceUpdate];
  19. }
  20. }

(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横屏显示的更多相关文章

  1. cocos2d-x在IOS7下面文字显示异常的解决办法 CGBitmapContextCreate: unsupported parameter combination

    首先定位到libs-->cocos2dx-->platform-->iOS-->CCImage.mm 找到这个文件. 打开CCImage.mm文件,定位到如下函数:   [cp ...

  2. 自定义的UIAlertView不能在iOS7上正常显示

    众所周知,当伟大的iOS7系统发布后,表扬的一堆.谩骂的也一片,而对于我们程序员来说最关心的莫过于低版本系统上的程序在搞版本系统上的兼容性问题了. 在iOS6.1几之前,当我们想要做一些提醒用户或临时 ...

  3. IOS 7 自定义的UIAlertView不能在iOS7上正常显示

    本文转载至 http://blog.csdn.net/hanbing861210/article/details/13614405 众所周知,当伟大的iOS7系统发布后,表扬的一堆.谩骂的也一片,而对 ...

  4. css3 移动端页面全屏旋转,横屏显示。

    css3旋转模拟手机横屏. 当手机不能自动旋转时,或有特殊需求.用css3 transform,实现横屏展示. 注意: 相关样式注意横屏的显示. touch的手势方向没有变,依旧是原来方向,若有相关插 ...

  5. iOS部分页面横屏显示

    在iOS系统支持横屏顺序默认读取plist里面设置的方向(优先级最高)等同于Xcode Geneal设置里面勾选application window设置的级别次之 然后是UINavigationcon ...

  6. 2.0.4 CCLabelTTF在ios7下不显示的问题

    要修改框架lib目录里的 CCImage.mm,就是把浮点值取了个整,之前的浮点形导致绘制失败: 在_initWithString这个方法里把如下代码替换一下就行了: //////////////// ...

  7. mui禁止横屏显示,仅支持竖屏显示

    mui.plusReady(function () { plus.screen.lockOrientation("portrait-primary"); });

  8. Android——横屏和竖屏的切换,以及明文密码的显示

    查看API文档: android.content.pm.ActivityInfo    在手机的使用中,我们要根据不同的需求来改变屏幕的显示方向,一般在浏览信息时是竖屏,在玩游戏的时候就要切换到横屏. ...

  9. IOS7学习之路二(处理ios6到ios7后UITableView的两个显示问题)

    1.在ios6开发的项目,当用ios7的虚拟机显示的时候会出现UINavigationItem遮挡TableView的问题: 下面是对比显示效果: 我的处理方法是: 在UITableViewContr ...

随机推荐

  1. QFormLayout

    这个是官方的文档,现在还没有翻译,有时间自己会把这个好好的翻译一下. QFormLayout类是用来管理表格的输入部件以及和它们相关联的标签. 也就是说QFormLayout这个布局一般情况下是用来在 ...

  2. MySQL分库分表环境下全局ID生成方案

    在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...

  3. 两个示例介绍JavaScript的闭包

    JavaScript的闭包有两个用途:一个是访问函数内部的变量:另一个是让变量的值在作用域内保持不变.函数是JavaScript 中唯一有作用域的对象,因此JavaScript的闭包依赖于函数实现,下 ...

  4. 将与系统时间格式不同的字符串格式化为DATETIME类型

    若系统时间格式为2012/03/05 08:12:12,那么若将("2012-03-05 08:12:12")格式化为时间变量时会报错,在转化之前先将系统时间格式改变再转换就不会报 ...

  5. python抓取网页图片

    本人比较喜欢海贼王漫画,所以特意选择了网站http://www.mmonly.cc/ktmh/hzw/list_34_2.html来抓取海贼王的图片. 因为是刚刚学习python,代码写的不好,不要喷 ...

  6. Hadoop-CDH5.7.0 for CentOS7

    一.需求 系统 CentOS 7 最小化安装 JDK环境 JDK版本:1.8.0_91 jdk-8u91-linux-x64.rpm 下载地址:http://www.oracle.com/techne ...

  7. 嵌入式 python之str操作

    1.字符串的对齐方式:①:center(int[,str])>>> string = 'Fishhat'>>> string.center(55)'         ...

  8. 关于Chrome(谷歌浏览器)对docume,准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top

    对于document.compatMode,很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途.今天在ext中看到 document.compatMode的使用,感觉这个对于我们开发兼容性的 ...

  9. rename 后缀

    for file in $(find . -name "*.del" -type f);do mv "$file" "${file%.del}&quo ...

  10. MVC中的控制器

    authour: chenboyi updatetime: 2015-04-25 12:22:35 friendly link:   目录: 1,思维导图 2,控制器约定 3,action向视图传值的 ...