Как добавить Subview для полноэкранного MPMoviePlayer
Я хочу добавить логотип (UIImageView
) в полноэкранный MPMoviePlayerController.
Работает нормально когда MPMoviePlayerController
не в полноэкранном режиме. Когда я переключаюсь на полный экран, все добавленные виды на MPMoviePlayerController
удален (скрытый).
Вот мой код:
- (void)setupMPMoviePlayer{
[self.moviePlayer.view removeFromSuperview];
[self removeNotifications];
self.moviePlayer = nil;
self.moviePlayer = [[MPMoviePlayerController alloc] init];
[self addNotifications];
[self.moviePlayer.view setFrame:self.view.bounds];
self.moviePlayer.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
self.moviePlayer.fullscreen = NO;
[self.view addSubview:self.moviePlayer.view];
if ([self.moviePlayer respondsToSelector:@selector(setAllowsAirPlay:)])
[self.moviePlayer setAllowsAirPlay:YES];
[self.moviePlayer setContentURL:[NSURL URLWithString:urlString]];
[self.moviePlayer setFullscreen:YES animated:YES];
[self addLogoViewAtView:self.moviePlayer.view];
}
- (void)addLogoViewAtView:(UIView *)view{
UIView *theView = [view viewWithTag:101];
if (theView.superview) {
[theView removeFromSuperview];
}
UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo_weiss.png"]];
logoView.tag = 101;
logoView.frame = CGRectMake( logoView.image.size.width - 100.0,
100.0,
logoView.image.size.width,
logoView.image.size.height);
logoView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;
[view addSubview:logoView];
[view bringSubviewToFront:logoView];
}
Теперь мой вопрос, есть ли альтернативный способ добавить подпредставление к MPMoviePlayerController
?
Я могу добавить логотип в окно приложения, но это не так чисто.
У кого-нибудь есть идеи, как я могу это сделать?
1 ответ
Наиболее вероятно полноэкранный режим добавляет представление MPMoviePlayerController в keyWindow для приложения или представляет контроллер модального представления выше. Таким образом, вы можете попытаться найти представление в window.subviews или модальные контроллеры представления для moviePlayer.