-1

次のコードを使用して、ビューにナビゲーション バーを追加しました。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@"Load Colors"];
    [navBar pushNavigationItem:navItem animated:NO];
    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:@selector(toggleEdit:)];
    navItem.rightBarButtonItem = editButton;
    [self.view addSubview:navBar];

    CGRect tableFrame = self.tableView.frame;
    tableFrame.origin.y = tableFrame.origin.y +45;
    self.tableView.frame = tableFrame;
}

下の図でわかるように、それは私のtableViewにあります.どうすれば修正できますか?

ここに画像の説明を入力

4

4 に答える 4

0

xib ファイルでは、ナビゲーション バー用のスペースを提供できます。下の画像はそれを説明しています。ここに画像の説明を入力次に、テーブルビューを追加できます。

UINavigationBar のサイズは、通常のディスプレイでは 320x44、Retina ディスプレイの iPhone では 640x88 です。

そして、viewWillAppearでこのコードを使用します

    //for custom navigationbar
    UINavigationBar *navBarName = [[self navigationController] navigationBar];
    UIImage *backgroundImg = [UIImage imageNamed:@"NavBar.png"];// ur navigationbar image of above dimension
    [navBarName setBackgroundImage:backgroundImg forBarMetrics:UIBarMetricsDefault];

    //for right edit button
    UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStylePlain target:self action:@selector(toggleEdit:)];          
  self.navigationItem.rightBarButtonItem = editButton;
于 2013-04-21T19:26:27.193 に答える
0
CGRect navframe = [[self.navigationController navigationBar] frame];

「navframe.size.height」を使用してナビゲーション バーの高さを計算し、TableView 原点「y」をこの高さの値に設定します。

于 2013-04-21T12:09:13.480 に答える
0

あなたの場合に適切かどうかはわかりませんが、NavigationBar を ViewController に追加する最良の方法は、ViewController を NavigationViewController に含めることです。この場合、デバイスが回転した場合の正しい変換についても心配する必要はありません。

一度手動で実装しようとしました (1 つのビューにのみナビゲーション バーが必要だったので、NavigationController を使用するのはやり過ぎだと思いました)。しかし、最終的にはすべてのコードを削除し、代わりに NavigationController を使用しました。

于 2013-04-21T12:19:37.843 に答える