如何将UINavigationController UIToolbar添加到视图的顶部而不是底部

时间:2012-05-17 22:56:17

标签: iphone ios uitableview uinavigationcontroller uitoolbar

我正在尝试将UINavigationController UIToolbar添加到视图的顶部,(在导航控制器下。

我的观点是UITableViewController ...所以有这个要处理。目前,我只是将UIToolbar放置在视图底部,我希望使用

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

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

当您设置要显示的UINavigationController工具栏时,它会将自身置于视图的底部并向上推UITableView,以便工具栏不会覆盖桌面视图。但是,当我更改工具栏的位置时,tableview仍然认为工具栏位于屏幕的底部,这意味着工具栏在屏幕底部不符合我想要的样式。

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

我希望这一切都有道理,我想提供的任何帮助,而不是提前和下面是我正在使用的当前代码(所有这些都是基本的我仍然感到困惑的是,为了实现这一点,幕后工作是什么)

- (void) viewDidLoad
{
//..

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

//..
}

更新

这是工具栏正在对我的tableview进行的操作

enter image description here

1 个答案:

答案 0 :(得分: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)];