当我的整个应用程序锁定在纵向模式时,以横向模式全屏播放视频
Play video fullscreen in landscape mode, when my entire application is in lock in portrait mode
我想全屏横向播放视频。
我的应用程序锁定在纵向模式。
如何实现这一点。请帮我。
提前致谢
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
只需在呈现的视图控制器的 - viewDidAppear:
中调用它即可。
另一种方式:
首先,您必须了解,即使只打开超过 100 个横向视图中的一个,您的应用程序也应该允许横向和纵向界面方向。默认情况下是这样,但您可以在目标的设置、“常规”选项卡、“部署信息”部分中查看
然后,因为您允许整个应用程序同时使用横向和纵向,所以您必须告诉每个仅纵向 UIViewController
它不应该自动旋转,添加此方法的实现:-
- (BOOL)shouldAutorotate {
return NO;
}
最后,对于你的特定横向控制器,因为你说你是以模态方式呈现它,你可以只实现这些方法:-
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft; // or Right of course
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
希望这会有所帮助:)
我已经在我的应用程序中完成了这项工作。为此,您需要检查 viewcontroller 您想要播放视频的位置。
您要做的第一件事是在您的项目目标中检查设备方向为纵向、横向左侧、横向右侧
在您的 AppDelegate 中执行以下代码
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
UIStoryboard *mainStoryboard;
if (IS_IPHONE) {
mainStoryboard= [UIStoryboard storyboardWithName:@"Main" bundle: nil];
}
else{
mainStoryboard= [UIStoryboard storyboardWithName:@"Main_iPad" bundle: nil];
}
ViewControllerThatPlaysVideo *currentViewController= ViewControllerThatPlaysVideo*)[mainStoryboard instantiateViewControllerWithIdentifier:@"postDetailView"];
if(navigationController.visibleViewController isKindOfClass: [ViewControllerThatPlaysVideo class]]){
if([currentViewController playerState])
return UIInterfaceOrientationMaskLandscape|UIInterfaceOrientationMaskPortrait;
return UIInterfaceOrientationMaskPortrait;
}
return UIInterfaceOrientationMaskPortrait;
}
swift3 中最简单的解决方案
将此添加到您的应用委托:
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if window == self.window {
return .portrait
} else {
return .allButUpsideDown
}
}
盯着这个页面看了将近一整天,我终于想出了一个节省工作时间的解决方案,
转到项目导航器,select 你的项目,一般来说 select 在设备方向上 potrait。
还要确保您正在使用 modal segue 来显示 landscapeController。
现在将其添加到控制器中您想要横向模式的位置。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
}
override var shouldAutorotate: Bool {
return false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscapeRight
}
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .landscapeRight
}
伙计们,就是这样。
我想全屏横向播放视频。 我的应用程序锁定在纵向模式。 如何实现这一点。请帮我。 提前致谢
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
只需在呈现的视图控制器的 - viewDidAppear:
中调用它即可。
另一种方式:
首先,您必须了解,即使只打开超过 100 个横向视图中的一个,您的应用程序也应该允许横向和纵向界面方向。默认情况下是这样,但您可以在目标的设置、“常规”选项卡、“部署信息”部分中查看
然后,因为您允许整个应用程序同时使用横向和纵向,所以您必须告诉每个仅纵向 UIViewController
它不应该自动旋转,添加此方法的实现:-
- (BOOL)shouldAutorotate {
return NO;
}
最后,对于你的特定横向控制器,因为你说你是以模态方式呈现它,你可以只实现这些方法:-
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft; // or Right of course
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
希望这会有所帮助:)
我已经在我的应用程序中完成了这项工作。为此,您需要检查 viewcontroller 您想要播放视频的位置。
您要做的第一件事是在您的项目目标中检查设备方向为纵向、横向左侧、横向右侧
在您的 AppDelegate 中执行以下代码
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ UIStoryboard *mainStoryboard; if (IS_IPHONE) { mainStoryboard= [UIStoryboard storyboardWithName:@"Main" bundle: nil]; } else{ mainStoryboard= [UIStoryboard storyboardWithName:@"Main_iPad" bundle: nil]; } ViewControllerThatPlaysVideo *currentViewController= ViewControllerThatPlaysVideo*)[mainStoryboard instantiateViewControllerWithIdentifier:@"postDetailView"]; if(navigationController.visibleViewController isKindOfClass: [ViewControllerThatPlaysVideo class]]){ if([currentViewController playerState]) return UIInterfaceOrientationMaskLandscape|UIInterfaceOrientationMaskPortrait; return UIInterfaceOrientationMaskPortrait; } return UIInterfaceOrientationMaskPortrait; }
swift3 中最简单的解决方案 将此添加到您的应用委托:
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if window == self.window {
return .portrait
} else {
return .allButUpsideDown
}
}
盯着这个页面看了将近一整天,我终于想出了一个节省工作时间的解决方案,
转到项目导航器,select 你的项目,一般来说 select 在设备方向上 potrait。
还要确保您正在使用 modal segue 来显示 landscapeController。
现在将其添加到控制器中您想要横向模式的位置。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
}
override var shouldAutorotate: Bool {
return false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscapeRight
}
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .landscapeRight
}
伙计们,就是这样。