2012-03-15 8 views
0

私のUINavigationController内にUITableViewを作成しています。問題は、テーブルがそのヘッダーをカバーしていることです。これは私のクラスである:UINavigationController内のUITableView

.H:

@interface SecondViewController : UINavigationController 

@end 

と.mファイルの一部:

- (id)init 
{ 
    self = [super init]; 
    if (self) { 

    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UITableView *mmm = [[UITableView alloc] initWithFrame:CGRectMake(0, 0,320, 100) style:UITableViewStylePlain]; 

[self.view addsubview:mmm]; 


} 

は私が間違って何をしているのですか?

答えて

5

私はこれがあなたがしたいことではないと思います。

UINavigationControllerのドキュメントは、サブクラス化を推奨しています。代わりに、私はあなたがUITableViewControllerを作成して、ナビゲーションコントローラのスタックにそのコントローラをプッシュしたいと思います(または、これは、ルートビューコントローラである場合、そのUITableViewControllerとナビゲーションコントローラを初期化する。

MyTableViewController *tableController = [[MyTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableController]; 
// now add the navController's view to the view hierarchy, however you intend to do that. 
1

あなたのUITableViewのフレームします原点0.0で開始、0.0魔女はあなたUINavigationControllerの原点である。ただ、

CGRectMake(0, 0,320, 100) 

CGRectMake(0, 44,320, 100) 
に変更します

参考UINavigationCantrollerをサブクラス化することはお勧めしません。

1

UITableView用のフレームを、画面上の左上の点が0,0の位置に作成しています。これはあなたのテーブルを許可されているように引き上げます。

1)IBでビューを作成し、コントローラに配線します。 IBでは、ステータスバー、ナビゲーションコントローラ、タブバーなど、異なるコントロールが表示されていることをレイアウトマネージャに伝えることができます。これらを適切に配置することで、UITableViewを正確に配置することができます。

2)テーブルビューをページに配置するために使用されたRectを変更します。フレームを下に移動するには、2番目の引数に追加する必要があります。あなたはテーブルビューがあなたがそれを望む場所になるまであなたが追加する量で遊ぶことができます。この数値はピクセルを表し、数値が高いほど、コントロールの左上隅が画面上に表示されます。

Good Luck!

関連する問題