如何动态设置 uiview 全屏?

how to set an uiview fullscreen dynamically?

我有一个应用程序有两个 subviews.I 想双击视频视图(最上面的那个)让它全屏显示视频。(全屏,我的意思是它应该处于横向模式)所以在方法-(void)handleTapGesture::(UITapGestureRecognizer*)recognizer中我应该怎么做? 我想,首先,我应该隐藏状态栏和导航栏;然后以编程方式旋转视频视图,使其横向 left/right。 顺便说一句,出于某种原因,我不得不让我的应用程序只支持肖像 mode.Forgive 我糟糕的英语,如果你不清楚我的问题,请发表评论,谢谢。

更新: 我把状态栏和导航栏都隐藏了,但是当我把视频全屏时,导航栏和状态栏好像还在,而且我的视频视图不能上移到屏幕顶部!

 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[self.navigationController.navigationBar setHidden:YES];

[UIView beginAnimations : @"video full screen" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationBeginsFromCurrentState:YES];

self.videoView.frame = self.view.bounds;
moviewGLView.frame = CGRectMake(0, 0, self.videoView.frame.size.width, self.videoView.frame.size.width*3/4);
moviewGLView.center = self.videoView.center;
videoDefault.center = self.videoView.center;
[UIView commitAnimations];

在您的 ViewDidLoad() 方法中添加此代码

UITapGestureRecognizer *tapOnTopView = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(makeTopViewFullScreen)];
tapOnTopView.numberOfTapsRequired = 1;
[topView addGestureRecognizer:tapOnTopView];

添加以下功能

-(void)makeTopViewFullScreen
{
   [UIView animateWithDuration:0.3 
           animation:^
                   {
                       topViewHeightConstraint = self.view.frame.size.height;
                       bottomViewHeightConstraint = 0;
                       [self layoutIfNeeded];
                   }
           completion:^
                   {
                       //your code to rotate the topView
                   }
}

注意topViewHeightConstraint和bottomViewHeightConstraint应该是IB中连接的outlets。

希望对您有所帮助,如果您需要更多帮助,请告诉我。