Видео Youtube в ландшафтном режиме в UIWebView

Мое приложение не было сделано для пейзажа. Но когда я открываю свой канал YouTube в UIWebView, и пользователь запускает видео , он появляется в Portrait. Я бы хотел, чтобы он отображался в ландшафтном режиме, если пользователь поворачивает свой iPhone.

Как включить ландшафтный режим, как в этом случае?

Я знаю, что для этого есть «грязные хаки», но я предпочитаю что-то более чистое. Кроме того, я не хочу, чтобы переключатели UIWebView отображались в ландшафте, но только, что видео могут.

Я, наконец, изменил свое мнение, чтобы он поддерживал ландшафтный режим, используя следующий код:

- (void)viewDidLoad { [super viewDidLoad]; [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; } - (void)viewWillAppear:(BOOL)animated { UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; if (UIDeviceOrientationIsLandscape(deviceOrientation)) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = YES; } else if (deviceOrientation == UIDeviceOrientationPortrait) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = NO; } } - (void)orientationChanged:(NSNotification *)notification { // We must add a delay here, otherwise we'll swap in the new view // too quickly and we'll get an animation glitch [self performSelector:@selector(updateLandscapeView) withObject:nil afterDelay:0]; } - (void)updateLandscapeView { UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation; if (UIDeviceOrientationIsLandscape(deviceOrientation) && !isShowingLandscapeView) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = YES; } else if (deviceOrientation == UIDeviceOrientationPortrait && isShowingLandscapeView) { //I set my new frame origin and size here for this orientation isShowingLandscapeView = NO; } } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait || UIInterfaceOrientationIsLandscape(interfaceOrientation)); } 

Чтобы показать свое видео в альбомном режиме, просто перейдите к инспектору атрибутов этого представления, где вы внедрили свой webView в Xcode и изменили ориентацию от портрета к пейзажу. так просто, как …

и не забудьте добавить этот код

 -(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) { return YES; } } 
 -(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { id presentedViewController = [window.rootViewController presentedViewController]; NSString *className = presentedViewController ? NSStringFromClass([presentedViewController class]) : nil; if (window && [className isEqualToString:@"AVFullScreenViewController"] && [presentedViewController isBeingDismissed] == NO) { return UIInterfaceOrientationMaskAll; } else { return UIInterfaceOrientationMaskPortrait; }} 

// Это работает для ios8

Interesting Posts
Давайте будем гением компьютера.