0

ナビゲーション スタックにすべて 3 つのビュー コントローラーがあります。最初のビュー コントローラーは uitoolbar を使用せず、2 番目のビュー コントローラーは使用し、3 番目のビュー コントローラーは使用しません。

問題は、2 番目の UIViewController から 3 番目の UITableViewController に移動するときに、ツールバーを非表示にすると、画面の上部に白い隙間ができることです。

ここに写真があります:

上部のギャップ

現在[self.navigationController setToolbarHidden:YES animated:YES]; 、2番目のView ControllerのviewWillDisappearにありますが、3番目のView ControllerのviewWillAppearメソッドにも入れています。どちらもギャップが発生します。

どうすればこれを修正できますか?

4

2 に答える 2

0

自分の質問に答えますが、ハッキーなので受け入れません。

viewDidLoadの先頭に次のコード行を追加することで修正できました。

[self.tableView setFrame: CGRectMake(0, 0, 320, 493)];

基本的に、テーブルビューフレームの高さをフルスクリーンのサイズ(320 x 480)より13ピクセル大きく設定しました。

于 2012-04-29T23:01:51.437 に答える
0

まずsetToolbarHidden:YES animated:NO、ツールバーなしで新しいUIViewControllerを表示するためにを使用することをお勧めします。あなたの方法は最初にそれを示し、その後消えると思いますよね?animated:NO(またはなしでメソッドシグネチャを使用する)場合animated:、新しいUIViewControllerは、3番目のUIViewControllerが画面にプッシュされたときに、2番目のUIViewControllerのUIToolbarを「プッシュ」する必要があります。

次に、InterfaceBuilderでのUIViewControllerのビューのショックとストラットを確認する必要があります。それがこのギャップの原因であることはほぼ間違いありません。おそらく、上下のマージンを固定し、高さを柔軟にする必要があります。

于 2012-04-29T21:51:56.630 に答える