如何动态设置 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。
希望对您有所帮助,如果您需要更多帮助,请告诉我。
我有一个应用程序有两个 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。
希望对您有所帮助,如果您需要更多帮助,请告诉我。