通过AVPlayerViewController显示UILabel

问题描述

我有一个AVPlayerViewController并想在播放器上显示UILabel,但无法显示UILabel。当我使用MPMoviePlayerViewController时,此方法可以很好地工作,但是由于切换到AVPlayerViewController,它不再起作用。

我这样启动AVPlayer:

        AVPlayer *player = [AVPlayer playerWithURL:theURL];
        AVPlayerViewController *theMovie = [[AVPlayerViewController alloc] init];
        [self presentViewController:theMovie animated:YES completion:nil];
        theMovie.player = player;
        [player play];

UILabel定义为lbloverlayView,其设置如下:

        lbloverlayView = [[UILabel alloc] init];
        lbloverlayView.frame = CGRectMake(0,100,self.view.frame.size.width,60);
        lbloverlayView.backgroundColor = [UIColor blackColor];
        lbloverlayView.alpha = 0.5f;
        Nsstring *combinedString1 = [@"Now Playing" stringByAppendingString:@" "];
        Nsstring *combinedString2= [combinedString1 stringByAppendingString:@"podcasts"];
        lbloverlayView.text =combinedString2;
        lbloverlayView.textColor = [UIColor whiteColor];
        lbloverlayView.textAlignment = NSTextAlignmentCenter;
        lbloverlayView.numberOfLines = 0;
        lbloverlayView.font =[UIFont boldSystemFontOfSize:14];
        lbloverlayView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin);
        [theMovie.view addSubview:lbloverlayView];
        [theMovie.view bringSubviewToFront:lbloverlayView];

如何使UILabel出现?

解决方法

使用控制器的.contentOverlayView

//[theMovie.view addSubview:lblOverlayView];
//[theMovie.view bringSubviewToFront:lblOverlayView];

[theMovie.contentOverlayView addSubview:lblOverlayView];