2012-05-17 32 views
3

我想要一个的UINavigationControllerUIToolbar添加到视图的顶部,(导航控制器下。如何UINavigationController的UIToolbar添加到视图不是底部

我的观点是UITableViewController顶.. 。所以,要处理的。目前,我只是定位在那里我希望它显示使用

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

这个定位在正确的位置的工具栏,我想它出现在视图底部的UIToolbar出现,但是它的定位位置有问题,我将会xplain。

当您设置一个UINavigationController工具栏来显示时,它将自己置于视图的底部并向上推UITableView,因此工具栏不包含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]; 

//.. 
} 

更新

这是目前什么工具做我的tableview

enter image description here

回答

4

呼叫SETFRAME您的UITableView将其移动到现在的位置。

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)]; 
+0

你认为有可能在self.tableView上调用它吗?我使用了tableViewController ..所以我不知道如何在mytable上调用它,因为我没有设置它。我刚刚使用self.tableview,但是当我用你的代码与self.tableView它似乎没有工作。 –

+0

是的,myTable只是你的UITableView ivar的占位符。你是如何制作你的桌子的?在界面生成器或代码?您可能会启用自动调整大小,这会覆盖setFrame命令。 – Joel

+0

在界面生成器中,我添加了一个UItableView,并在它们的视图中传递给它..我只是寻找autor resizing,我看到一个自动调整大小的子视图,我只是取消选择,但没有帮助..是否有另一个我可以寻找。 –

相关问题