【问题标题】:Table view position doesn't clip to navigation bar表格视图位置不会剪辑到导航栏
【发布时间】:2021-09-01 22:38:55
【问题描述】:

当我使用自定义表格视图创建表格视图时,导航栏和表格视图顶部之间有空白空间。

看起来:

我添加了与 view.topAnchor 相同的约束。 我不知道为什么会这样。

如何将表格视图剪辑到顶部?

提前谢谢你。

【问题讨论】:

    标签: ios swift iphone xcode uitableview


    【解决方案1】:

    确保您没有添加任何标题。 如果您使用的是 nib/storyboard,请查看 ViewController 设计 -> 选择 tableview -> 将 Footer heightHeader height 设置为 0。

    如果您使用的是代码,请查看此示例,了解如何使用代码删除标头 - How to hide first section header in UITableView (grouped style)

    默认情况下,它需要 28,这就是它在顶部显示空白的原因。

    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 0
    }
    
    func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
        return 0
    }
    

    设置上述代码并确保委托方法将被调用。

    【讨论】:

    • 对不起,我在这里发布答案,因为我无法发表评论。
    • 谢谢你的线索。但是,我以编程方式创建了表格视图。如何以编程方式设置这些属性?
    • 不幸的是,您的代码不适用于我的。我刚刚在您共享的链接中找到了解决方法。我把这段代码放在我的 viewDidLoad 下面,它解决了这个问题:tableView.tableHeaderView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: tableView.bounds.size.width, height: 0.01))
    【解决方案2】:

    试试这个技巧,在视图中添加一个空白 UIView... In viewDidLoad:

    view.addSubview(UIView())
    

    我忽略了原因,但这会破坏您的 UIScrollView 和导航栏之间的链接...这可能会解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-05
      • 2017-01-28
      • 2013-09-15
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      相关资源
      最近更新 更多