風景モードで画像全画面を表示したいときに同様の問題が発生し、ポートレートモードのデフォルト位置になりました。私のアプリはTabBarControllerを含んでいたので、それぞれのタブにナビゲーションコントローラが表示されていましたので、イメージを含むビューに対して "willAnimateRotationToInterfaceOrientation"を使って自分自身の周りを移動しなければなりませんでした。
私のアプリでは、タブバーコントローラは、ポートレートを上下に変えて、すべての向きで表示されます。タブバーのコントローラーを一方向にロックすると、タブバー内のすべての後続のビューもロックされると思います。基本的には、ステータスバー、ナビゲーションバー、タブバー、ナビゲーションバーを表示外に、タブバーを表示外に、コンテンツのサイズを中間に隠しています。私はあなたのWebViewのサイズを変更することにより、それが自動的にせずに、適切内のコンテンツに合わせなければならないと考えている
- (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に配置します。しかし、それでも下部のTab Barは削除されません。それが何か他のものになる可能性がある場合は、任意のアイデア?イベントが発生しているとそれはWebviewをrezises、それは間違った境界は、画面の外に移動し、タブバーがまだあるためです。 –