【问题标题】:UITableView section header creeps under navigation barUITableView 部分标题在导航栏下爬行
【发布时间】:2012-12-03 09:26:15
【问题描述】:

由于导航栏样式是半透明的,我的第一节标题(第 0 节)隐藏在导航栏下方。

我知道以前有人问过这个问题,解决方法是:

 self.navController.navigationBar.translucent = YES;

这使有问题的视图正确 - 部分标题显示在导航栏下方而不是隐藏在它后面,这正是我想要的。

但是,这会使我的其他视图设计无效,并在所有视图设计中留下额外的空间,就在我的导航栏下方。

如何在正确的位置获取节标题?

【问题讨论】:

    标签: uinavigationbar uitableview translucency sectionheader


    【解决方案1】:

    已解决:

    • 打开故事板文件
    • 选择 UITableView
    • 在属性检查器下 -> 滚动视图大小 -> 内容插入,设置 Top = 44(或您的导航栏高度)。

    见下图 - 它在尺寸部分:

    And here is 如何以编程方式修复它。

    【讨论】:

    • 属性检查器在哪里?
    • 检查器中不存在内容插入,只有滚动指示器插入。
    • @SteveTaylor - 检查你是否不小心使用隐藏按钮隐藏了它。
    • 我又检查了一遍。它不是隐藏的。它根本不存在。不过,我不是用幻数解决了这个问题,而是将我的UITableViewController 嵌入到UINavigationViewController 中。
    【解决方案2】:

    在使用 SVPullToRefresh 时解决此问题。我创建了下面的方法并代替 [self.tableView.pullToRefreshView stopAnimating];

    -(void)stopPullToRefreshAnimation
    {
        [self.tableView.pullToRefreshView stopAnimating]; // call to stop animation
    
        UIEdgeInsets inset = UIEdgeInsetsMake(44, 0, 0, 0);
        self.tableView.contentInset = inset;
        self.tableView.scrollIndicatorInsets = inset;
    } //stopPullToRefreshAnimation
    

    【讨论】:

    • 在 tableview 类型的对象上找不到属性 pulltorefreshview
    【解决方案3】:

    对于在使用 (SVPullToRefresh) 时遇到此问题的其他人。

    可以通过将 UIScrollView+SVPullToRefresh.m 中的 view.originalTopInset 更改为您希望标题开始的任何点来解决。

    【讨论】:

    • Tariq 你能分享一下这方面的细节吗?在初始滚动操作之后,我永远无法看到我的第一个 tableview 元素,它在 navcontroller/bar 下爬行。我在 SVPullToRefresh 代码中看到 originalTopInset var,但它在很多地方都使用过 - 我应该在哪里更改它以及如何更改?
    【解决方案4】:

    最简单的解决方案:

    tableView.tableHeaderView = UIView()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2020-03-09
      相关资源
      最近更新 更多