【发布时间】:2011-03-17 06:19:31
【问题描述】:
在我的应用程序中,默认状态栏是可见的。我的应用程序支持横向和纵向。 当我想播放视频时,我会隐藏状态栏,这样我的视频就会全屏显示。视频播放完毕后,我将状态栏带回来。
我正在使用以下代码来显示视频:
UIWindow* window = [[UIApplication sharedApplication] keyWindow];
[window addSubview:playerView];
(我不能在我的代码中使用视图控制器。这是一个限制)
现在的问题: 我的应用程序现在处于横向状态,单击按钮,我将隐藏状态栏并开始播放视频。播放视频时,我将手机的方向更改为纵向,并允许视频播放完毕。视频完成后,设备仍处于纵向模式,播放器视图被移除,状态栏再次显示。现在我注意到我的纵向视图向上移动了 20 像素,并且超过了状态栏的显示。但是当我第一次启动应用程序时,首先显示状态栏,然后在其下方显示我的视图。
我应该如何处理这种情况?
在视图控制器中简单地使用以下代码。
- (void)viewDidLoad {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
[self performSelector:@selector(showStatusAgain) withObject:nil afterDelay:6.0];
[super viewDidLoad];
}
-(void)showStatusAgain
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
}
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
当您使用上述代码运行应用程序时,它将以纵向启动。现在将其旋转为横向。你可以注意到这个问题。
【问题讨论】:
-
也许您可以尝试在 viewDidLoad 和 didRotateFrominterfaceOrientation 方法中为您的视图设置框架...。试一试并检查位置...
-
一点代码肯定会得到一些帮助
-
嗨 7KV7,我添加了导致状态栏方向问题的示例代码。
标签: iphone orientation mpmovieplayercontroller statusbar