9

iOS 6.0 SDK に対して iPad アプリをビルドした後、UISplitViewController の詳細ビューでこの奇妙な動作が発生します。詳細ビューは、本来よりも 20 ピクセル (ポイント / 40 ピクセル) 低く配置されています。

ここに画像の説明を入力

5.1 では次のように表示されます。

ここに画像の説明を入力

Interface Builder の DetailViewController_iPad.xib では、[シミュレートされたメトリック] > [トップ バー] を [なし] に設定しました。これは役に立ちませんでした。ビューフレームをログに記録しました:

- (void) viewDidLayoutSubviews {
//.. etc
NSLog(@"viewDidLayoutSubviews: %@", CGRectCreateDictionaryRepresentation(self.view.frame) );
}

これにより、高さが 704 ではなく 684 としてログに記録されます。

Height = 684; Width = 703; X = 0; Y = 0;

誰でもこの種の経験はありますか?次に何を試せばいいですか?

更新:この問題は断続的に発生するようで、コンパイルによって発生するものと発生しないものがあります。

他の誰かがこの問題を抱えていて、その原因を突き止めたとしても、私はまだ知りたいと思っています.

4

7 に答える 7

9

私はまったく同じ問題を抱えていました!

この問題は、ナビゲーション コントローラーに別のビュー コントローラーがあり、この分割されたビュー コントローラーがアプリの起動時にメソッドapplication:didFinishLaunchingWithOptions:にプッシュされた場合に発生します。

これで問題が解決しました:

私が使用したsplitViewControllerをプッシュするとき

dispatch_async(dispatch_get_main_queue(), ^{

     [self.navigationController pushViewController:splitViewController animated:NO];

})

それ以外の

[self.navigationController pushViewController:splitViewController animated:NO];

これを iOS6 にのみ使用しました。それ以外の場合、最初のビューは OS < iOS6 で一時的に表示されます。

于 2012-10-04T14:20:59.190 に答える
2

コードでビューのフレームに影響を与えるために何もしていないと思いますよね?すべてのレイアウトを実行しているのはビューのコントローラーですか?もしそうなら、あなたはいじくり回してみました-wantsFullScreenLayoutか?

ビューコントローラがビューを表示するとき、通常はそのビューを縮小して、フレームがデバイスのステータスバーと重ならないようにします。このプロパティをYESに設定すると、View Controllerは、ステータスバーの下の領域を含む画面全体に表示されるようにビューのサイズを変更します。(もちろん、これを行うには、View Controllerをホストするウィンドウ自体が、ステータスバーの下の領域を含む画面全体に表示されるサイズにする必要があります。)通常、半透明のステータスの場合は、このプロパティをYESに設定します。バーを表示し、ビューのコンテンツをそのビューの背後に表示する必要があります。

このプロパティがYESの場合、ビューはタブバーをアンダーラップするような方法でサイズ変更されませんが、半透明のツールバーをアンダーラップするようにサイズ変更されます。このプロパティの値に関係なく、ナビゲーションコントローラでは、ビューが常に半透明のナビゲーションバーを重ねることができます。

このプロパティのデフォルト値はNOです。これにより、ビューがレイアウトされ、ステータスバーと重ならないようになります。

念のために言っておきますが、-wantsFullScreenLayout実際にはウィンドウのルートビューコントローラにのみ影響を与える必要があります。したがって、これで問題が解決した場合(そして、View Controller階層で間抜けなことを何もしていない場合)、Appleにバグを報告してください。

于 2012-10-03T01:57:25.147 に答える
1

高さの autosizng プロパティを xib ファイルまたはプログラムで設定しましたか? はいの場合は、それらを削除して問題が解決するかどうかを確認してください。

于 2012-10-03T06:01:51.420 に答える
1

たぶんあなたの詳細コントローラーに[UIViewController statusBarHidden]設定されていますか?NO

于 2012-09-25T13:01:45.390 に答える
1

Xcode 4.5 には autolayout を適用する習慣があり、これがあなたの悲しみの原因となる可能性があります - これを調べて、選択を解除してみてください。

于 2012-10-03T01:44:58.840 に答える
0

役立つかもしれません。また、私の例でビューのサイズを縮小したのと同じ問題の影響を受けました。iPhone アプリの XIB の高さが 480px で、460px に縮小しました。よくわからないiPadでも同じことをしてくださいが、役立つかもしれません。

于 2012-10-04T09:07:40.080 に答える