MPMoviePlayerController Проблема с навигационной панелью iPhone - PullRequest
1 голос
/ 15 февраля 2011

У меня есть контроллер представления, который включает в себя MPMoviePlayer внутри.Я скрываю панель навигации и хочу, чтобы она отображалась при приостановке видео.

Когда видео загружено, оно работает просто отлично.После того, как я сделал паузу, появляется панель навигации по видео, но она толкает весь вид игрока немного вниз.Как сделать так, чтобы панель навигации отображалась без ущерба для вида игрока.

Вот код, который я использовал:

В ViewDidLoad ():

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(videoPlayerPlaybackStateChanged:) 
                                             name:MPMoviePlayerPlaybackStateDidChangeNotification
                                           object:nil];

[self setWantsFullScreenLayout:YES];
[moviePlayer prepareToPlay];
//For viewing partially.....
moviePlayer.view.backgroundColor = [UIColor blackColor];
//[moviePlayer.view setFrame:CGRectMake(0, 0, 320, 410)];
[moviePlayer.view setFrame:[self.view bounds]];
moviePlayer.fullscreen = YES;
moviePlayer.scalingMode = MPMovieScalingModeAspectFill;

[self.view addSubview:moviePlayer.view]; 

[moviePlayer play];

- (void) videoPlayerPlaybackStateChanged:(NSNotification*) aNotification 
{
MPMoviePlayerController *player = [aNotification object];

if(player.playbackState == MPMoviePlaybackStatePaused){

    self.navigationController.navigationBar.tintColor = [UIColor blackColor];
    self.navigationController.navigationBarHidden = NO;

}
else if(player.playbackState == MPMoviePlaybackStatePlaying){
    self.navigationController.navigationBarHidden = YES;
}

[player autorelease];    
}

Заранее спасибо...

1 Ответ

2 голосов
/ 15 февраля 2011

В вашем состоянии

if(player.playbackState == MPMoviePlaybackStatePaused)
{
    self.navigationController.navigationBar.tintColor = [UIColor blackColor];
    self.navigationController.navigationBarHidden = NO;

}

Попробуйте использовать

    [self.navigationController.navigationBar setTranslucent:YES];
...