0

ナビゲーション コントローラーのテーブルの最初の行が、その一部がナビゲーション コントローラーの下に配置される原因は何ですか?

行全体を上から下に表示するようには見えません。些細なことに思えるかもしれませんが、明らかに正しくなく、魅力的ではありません。

TableViewController が完全にコードで nav コントローラーに追加されました:

     SettingsRootController*settings=[[SettingsRootController alloc] initWithStyle:UITableViewStylePlain];
    self.settingsView=[[[UINavigationController alloc] initWithRootViewController:settings]autorelease];
    [settings release];

SettingsRootControllerUITableViewController のサブクラスです。

ナビゲーション コントローラーのテーブルの最初の行が、その一部がナビゲーション コントローラーの下に配置される原因は何ですか?

4

2 に答える 2

1

プログラムで追加された一般的な問題のようです- UINavigationController を UIView のサブビューとして追加するUINavigationControllerを参照してください。

基本的に、サブビューとしてどこかに追加する前にframe、プロパティを設定する必要があります。上記の質問に対する受け入れられた回答には、のフレームを次のように変更する提案もあります。UINavigationController UINavigationController

nav.view.frame = CGRectMake(nav.view.frame.origin.x, nav.view.frame.origin.y - 20,
                      nav.view.frame.size.width, nav.view.frame.size.height);
于 2012-05-24T07:57:50.163 に答える
1

動作しているように見える唯一のことは、nav コントローラー内のテーブル ビューを手動で 10 ピクセル下にシフトすることですが、iPad では位置合わせの問題がなく、iPad で 10 ピクセルシフトするとギャップが生じるため、iPad ではなく iPhone でのみです。他のスレッドで指摘されている他の奇妙な問題があるため、これは明らかにある種のナビゲーション コントローラーのバグです。

 CGPoint tableorigin=CGPointMake(0,ISIPAD?0:10);
于 2012-05-24T09:46:50.747 に答える