gpt4 book ai didi

iOS - 纵向锁定选项卡 Controller 应用程序不允许横向电影播放器

转载 作者:行者123 更新时间:2023-12-01 16:56:27 24 4
gpt4 key购买 nike

我有一个应用程序,它纯粹是一个带有 5 个选项卡( View )的选项卡栏 Controller 。我希望这些 View 只是纵向的。但是,该应用程序确实允许播放视频剪辑,并使用 MPMoviePlayerViewController 来播放。但我无法让玩家旋转到横向!

我尝试了以下方法(以及许多其他方法):
继承 MPMoviePlayerViewController 并覆盖该类的 shouldAutorotateToInterfaceOrientation 方法。

允许应用程序具有横向方向,然后尝试将选项卡 View 锁定为纵向(不锁定它们,允许它们进入我不想要的横向)。

我已经搜索 StackOverflow 和 Google 好几天了!
任何熟悉这个问题以及如何让电影播放器​​旋转的人???

最佳答案

尝试实现 UIViewController containment .将要在其中显示影片的选项卡的 viewController 指定为父(或容器)viewController。

您将希望在子类中覆盖 shouldAutorotateToInterfaceOrientation 以仅允许横向,这听起来像是您已经完成的。在您的父 View Controller 和 tabBarController 中,您需要确保它们将自动旋转方法转发给您的子类。您可以通过在 shouldAutorotateToInterfaceOrientation 的子类实现中放置 NSLog 来检查这一点。

然后,当您要显示视频时,将 MPMoviePlayerViewController 的子类添加到它。

当您加载电影播放器​​的子类时,请尝试在父 View Controller 中执行此操作:

[self addChildViewController:self.subclassedMoviePlayerViewController];
[self.view addSubview:self.currentViewController.view];
[self.subclassedMoviePlayerViewController didMoveToParentViewController:self];

或者,如果您想为更改设置动画,您可以执行以下操作:
CGRect viewFrame=self.subclassedMoviePlayerViewController.view.frame;
CGFloat viewHeight=inputViewFrame.size.height;

CGRect newFrame=CGRectMake(0, self.view.frame.size.height, viewFrame.size.width, viewFrame.size.height);

self.subclassedMoviePlayerViewController.view.frame=newFrame;
[self addChildViewController:self.subclassedMoviePlayerViewController];

CGRect offSetRect=CGRectOffset(newFrame, 0, -inputViewHeight);

[self.view addSubview:self.subclassedMoviePlayerViewController.view];
[UIView animateWithDuration:0.2
animations:^{
self.subclassedMoviePlayerViewController.view.frame=offSetRect;
}
completion:^(BOOL finished){
[self.subclassedMoviePlayerViewController didMoveToParentViewController:self];
}];

当然,在添加之前,您必须为电影播放器​​ View Controller 的子类设置 View 框架。

那么当你想删除它时:
[self.subclassedMoviePlayerViewController willMoveToParentViewController:nil];
[self.subclassedMoviePlayerViewController.view removeFromSuperView];
[self.subclassedMoviePlayerViewController removeFromParentViewController];

祝你好运

关于iOS - 纵向锁定选项卡 Controller 应用程序不允许横向电影播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11371930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com