가로 모드로 이미지 전체 화면을 표시하려고했는데 세로 모드에서 기본 위치로 설정했을 때 비슷한 문제가 발생했습니다. 내 앱에는 네비게이션 컨트롤러를 표시하는 각 탭이있는 TabBarController가 포함되어 있기 때문에 이미지가 포함 된보기에 대해 "willAnimateRotationToInterfaceOrientation"을 사용하여 직접 주변을 이동해야했습니다.
내 응용 프로그램에서는 탭 바 컨트롤러가 세로 방향을 제외하고 모든 방향으로 표시됩니다. 탭 바 컨트롤러를 하나의 방향으로 잠그면, 탭 바 안의 모든 후속 뷰를 잠글 것입니다. 본질적으로 탐색 바를 보이지 않게 위로 이동하고 탭 바를 보이지 않게하고 중간에 내용의 크기를 조정하면서 상태 표시 줄, 탐색 모음 및 탭 표시 줄을 숨 깁니다. 하지 않고
나는 당신의 웹보기 크기를 조정하여 생각
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {
float navBarHeight = self.navigationController.navigationBar.frame.size.height;
float tabBarHeight = ((UITabBarController *)self.navigationController.parentViewController).tabBar.frame.size.height;
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
float statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
[[UIApplication sharedApplication] setStatusBarHidden:YES];
self.navigationController.navigationBar.hidden = YES;
((UITabBarController *)self.navigationController.parentViewController).tabBar.hidden = YES;
// TabBarController adjustments
self.navigationController.parentViewController.view.bounds = CGRectMake(0, -tabBarHeight/2, 480, 320 + tabBarHeight);
// Adjust view
self.view.frame = CGRectMake(0, -statusBarHeight - navBarHeight, 480, 320);
// Adjust web view
self.WebView.frame = CGRectMake(26, 0, 426.6667, 320);
}
if (interfaceOrientation == UIInterfaceOrientationPortrait)
{
[[UIApplication sharedApplication] setStatusBarHidden:NO];
float statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
self.navigationController.navigationBar.hidden = NO;
((UITabBarController *)self.navigationController.parentViewController).tabBar.hidden = NO;
// TabBarController adjustments
self.navigationController.parentViewController.view.bounds = CGRectMake(0, 0, 320, 480);
// NavigationController adjustments
self.navigationController.navigationBar.frame = CGRectMake(0, statusBarHeight, 320, navBarHeight);
// Adjust view
self.view.frame = CGRectMake(0, statusBarHeight + navBarHeight, 320, 480 - statusBarHeight - navBarHeight - tabBarHeight);
// Adjust web view
self.WebView.frame = CGRectMake(0, 0, 320, 240);
}
}
자동으로 적절하게 내에서 내용에 맞게해야한다 : 여기 self.WebView (즉, 예를 들어, 내 이미지이었을 것이다)이 있음을 가정하면, 내가 무슨 짓을했는지의 예 "새로 고침"그 자체.
탭 탭 컨트롤러는 조건에 따라 어떤 탭을 선택했는지에 따라 회전하도록 만들 수도 있습니다. 가로 모드에서 탭 표시 줄을 숨길 수 있기 때문에 세로 모드가 아니면 다른 탭을 사용할 수 없습니다. 선택한 탭이 webView가 포함 된 뷰의 탭일 경우에만 회전 허용 – leukosaima
감사합니다. 조금만 시도해 보겠습니다. –
각 탭 페이지에있는 각 UIViewController에 그 내용을 넣습니다. 하지만 여전히 하단의 탭 막대는 제거되지 않습니다. 다른 아이디어가 있다면 놓칠 수있는 아이디어가 있습니까? 이벤트가 해고되고 webview를 rezises, 그것은 틀린 경계 때문에 화면 밖으로 이동하고 tabbar 여전히 거기에있다. –