iOS - 整个视图在旋转后向上移动

时间:2013-02-06 22:14:55

标签: iphone ios ipad video

做一个非常简单的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度)生效。 BTW moviePlayer var在.h文件中设置如下:

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;

然后它在我的ViewController中合成:

@synthesize moviePlayer;

所有人都有任何想法吗?我尝试将“setFrame”更改为从0开始,而不是0,0,但是在稍后的轮换中将事情搞砸了。如果有一种方法可以忽略初始加载时的哑状态栏,我很想知道它。感谢。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

尝试拨打

[self setWantsFullScreenLayout:YES];

在viewcontroller实现中。这应该强制它“忽略初始加载时的哑状态栏”。