2

做一个非常简单的 iPad 应用程序,可以全屏播放视频。我希望视频完全居中,但在初始加载时它有点太低了。当我旋转它时,视图会正确重置为完全居中。显然,我希望从一开始就让它看起来像这样。

这是我在 viewDidLoad 中的代码:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"movie" ofType:@"m4v"]];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
[moviePlayer prepareToPlay];
CGRect screenBounds = [UIScreen mainScreen].bounds;
[moviePlayer.view setFrame:CGRectMake(0, 0, screenBounds.size.height, screenBounds.size.width)];
[self.view addSubview:moviePlayer.view];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[moviePlayer play];
[super viewDidLoad];

该应用程序设置为仅在横向模式下显示,因此旋转每 180 度(而不是 90 度)生效。顺便说一句,moviePlayer var 在 .h 文件中设置,如下所示:

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;

然后在我的 ViewController 中合成:

@synthesize moviePlayer;

那么有人有什么想法吗?我尝试将“setFrame”更改为从 0,-20 而不是 0,0 开始,但这在后来的旋转中搞砸了。如果有办法在初始加载时忽略愚蠢的状态栏,我很想知道。谢谢。

4

2 回答 2

4

尝试将框架设置为-viewDidLayoutSubviews. 布局应该在那里处理,而不是在设置方法中。

于 2013-02-06T22:18:42.297 回答
2

试着打电话

[self setWantsFullScreenLayout:YES];

在视图控制器实现中。这应该迫使它“忽略初始加载时的哑状态栏”。

于 2013-02-06T22:46:17.043 回答