当显示工具栏时,UINavigationController内的iOS自定义视图大小

时间:2013-02-07 17:37:43

标签: ios uinavigationcontroller toolbar

我有一个非常简单的设置:UINavigationController setToolbarHidden NO。因此,UINavigationController所拥有的内容中自定义视图的容器应该是从导航栏底部到工具栏顶部的距离。 expected distance

然而,我得到的是(通过透过半透明工具栏可以从屏幕截图中收集)从导航栏底部到屏幕底部的距离。

我已将autoresizingMask设置为UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth中的viewDidAppear,但它永远不会得到#34;对等"将工具栏高度考虑在内的答案。我可以计算工具栏高度并从视图高度中减去它,重置自定义视图的高度,但是在旋转设备时会重新出现真正的问题。这似乎是一种自动化的问题,我很困惑为什么工具栏没有被考虑在内。

有关如何调整自定义视图大小的任何提示,将工具栏占用的空间考虑在内吗?

几点说明:

  1. 我正在以编程方式创建所有这些,而不是使用IB

  2. 我在Symbiote中检查了它,这是非常可靠的(至少对我而言)并且它通过NSLog输出验证我能看到和测量的内容

  3. 我看到应用程序一直这样做,所以我觉得我必须遗漏一些东西。

    代码:

    // Code translated from RubyMotion
    
    view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
    self.tableView = [[UITableView alloc] initWithFrame:view.bounds style:UITableViewStylePlain];
    self.tableView.accessibilityLabel = @"events table";
    self.tableView.backgroundColor = [UIColor whiteColor];
    [self.tableView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
    
    self.tableView.dataSource = self;
    self.tableView.delegate = self;
    self.tableView.tableHeaderView = searchBar; // assume I created a searchbar
    
    [self.view addSubview:self.tableView];
    

    提前致谢。

1 个答案:

答案 0 :(得分:0)

当您将工具栏设置为半透明时,内容视图会自动调整大小以将空间一直消耗到栏的底部,这与您希望通过它看到某些内容的事实相对应。当您使工具栏不透明时,内容视图的大小将适合图形中箭头所表示的空间。

viewDidLoad的某个地方,您可以设置:

self.navigationController.toolbar.translucent = NO;

虽然真的,这应该是默认值,所以你必须将它设置为某个地方的YES,如果不是在这个视图控制器中,那么可能在父节点中?