【问题标题】:how to add UINavigationController UIToolbar to the top of the view not the bottom如何将 UINavigationController UIToolbar 添加到视图的顶部而不是底部
【发布时间】:2012-05-25 13:16:47
【问题描述】:

我正在尝试将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];

//..
}

更新

这是当前工具栏对我的 tableview 所做的事情

【问题讨论】:

    标签: iphone ios uitableview uinavigationcontroller uitoolbar


    【解决方案1】:

    在您的 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)];
    

    【讨论】:

    • 你认为可以在 self.tableView 上调用它吗?我使用了 tableViewController.. 所以我不确定如何在 mytable 上调用它,因为我没有设置它。我一直在使用 self.tableview,但是当我将您的代码与 self.tableView 一起使用时,它似乎不起作用。
    • 是的,myTable 只是你的 UITableView ivar 的占位符。你是如何创建你的表的?在 Interface Builder 中还是在代码中?您可能打开了自动调整大小,这会覆盖 setFrame 命令。
    • 在 Interface Builder 中,我添加了一个 UItableView 并将视图传递给他们的.. 我只是寻找自动调整大小,我看到一个自动调整大小的子视图,我刚刚取消选择但没有帮助.. 那里另一个我可以寻找。
    • 博雅!我刚刚取消选择剪辑子视图,重新运行脚本,表格现在转到底部!但是工具栏仍然略微覆盖第一行。
    • 查看我的问题的更新,看看工具栏对 tableview 做了什么。
    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    相关资源
    最近更新 更多