显示工具栏时UINavigationController内部的iOS自定义 View 大小

标签 ios uinavigationcontroller toolbar

我有一个非常简单的设置:A UINavigationControllersetToolbarHidden NO .因此,UINavigationController 拥有的东西内的自定义 View 的容器应该是导航栏底部到工具栏顶部的距离。
expected distance

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

我设置了autoresizingMaskUIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth在我的viewDidAppear ,但它永远不会得到考虑工具栏高度的“正确”答案。我可以计算工具栏高度并将其从 View 高度中减去,从而重置自定义 View 的高度,但是当设备旋转时,真正的问题再次出现。这似乎是一种自动调整大小的问题,我很困惑为什么不考虑工具栏。

任何提示如何调整自定义 View 的大小,考虑工具栏占用的空间?

几点注意事项:

  • 我正在以编程方式创建所有这些,而不是使用 IB
  • 我在 Symbiote 中检查过它,它非常可靠(至少对我而言),它验证了我可以通过 NSLog 看到和测量的内容。输出

  • 我看到应用程序一直在这样做,所以我觉得我一定错过了一些东西。

    代码:
    // 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];
    

    提前致谢。

    最佳答案

    当您使工具栏半透明时,内容 View 会自动调整大小以占用一直到栏底部的空间,这与您希望通过它看到某些东西的事实相对应。当您使工具栏不透明时,内容 View 将调整大小以适合绘图中箭头指示的空间。

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

    self.navigationController.toolbar.translucent = NO;
    

    虽然真的,这应该是默认值,所以你必须将它设置为 YES某处,如果不在此 View Controller 中,那么可能在父级中?

    关于显示工具栏时UINavigationController内部的iOS自定义 View 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757416/

    相关文章:

    iphone - UIPinchGestureRecognizer 没有被调用

    iphone - 正确分配/取消分配 UINavigationControllerDelagate

    ios - 如何将值传递给嵌入在 NavigationController 中的 viewController

    visual-studio - 在 Visual Studio 中,如何将 'Full Screen' 图标复制到工具栏?

    javascript - iOS Safari VoiceOver - 如何阅读动态内容?

    ios - UITableView ScrollToRowAtIndexPath 方法不起作用

    ios - 添加带有后退按钮的 UINavigationController

    ios - IOS6中强制横向 View

    crash - 尝试向工具栏添加图标会使OpenOffice Writer崩溃

    android - 使用 Activity 的工具栏从 Fragment 向上导航