3

我正在尝试UINavigationController UIToolbar在视图顶部添加一个(在导航控制器下。

我的观点是UITableViewController……所以要处理这个问题。目前我只是定位UIToolbar出现在视图底部的我希望它显示的位置

[self.navigationController.toolbar setFrame:CGRectMake(0, 60, 320, 30)];

这会将工具栏定位在我希望它出现的正确位置,但是它的位置存在问题,我将对此进行解释。

当您设置UINavigationController要显示的工具栏时,它会将自己置于视图的底部并将 UITableView 向上推,因此工具栏不会覆盖 tableview。但是,当我更改工具栏的位置时,tableview 仍然认为工具栏位于屏幕底部,这意味着工具栏不会在屏幕底部与我希望的齐平。

所以我的问题是如何让工具栏直接显示在导航控制器栏的下方,并将 tableview 向下推以适应新位置的工具栏。

我希望这一切都有意义,我想要的任何帮助都比提前和以下是我正在使用的当前代码(所有这些都是基本的,我仍然对幕后发生的事情感到困惑)。

- (void) viewDidLoad
{
//..

    [self.navigationController setToolbarHidden:NO animated:YES];
    [self.navigationController.toolbar setFrame:CGRectMake(0, 60, 320, 30)];
    self.navigationController.toolbar.tintColor = [UIColor lightGrayColor];

//..
}

更新

这是目前工具栏对我的表格视图所做的

在此处输入图像描述

4

1 回答 1

4

在您的 UITableView 上调用 setFrame 以将其移动到位置。

float y = self.navigationController.toolbar.frame.origin.y + self.navigationController.toolbar.frame.size.height;
[myTable setFrame:CGRectMake(0, y, self.view.frame.size.width, self.view.frame.size.height-y)];
于 2012-05-17T22:59:37.773 回答