UITableView 中的顶部单元格隐藏在 UINavigationBar 后面

Posted

技术标签:

【中文标题】UITableView 中的顶部单元格隐藏在 UINavigationBar 后面【英文标题】:Top cell in UITableView hidden behind UINavigationBar 【发布时间】:2010-10-15 08:05:44 【问题描述】:

我有一个 UINavigationController 控制 UIViewControllers 堆栈。当我将某个 UITableViewController 压入堆栈时,我发现其 UITableView 的顶行隐藏在 UINavigationBar 后面。

这个问题只发生在 iPad 上,而不是 iPhone。我在两者上都使用相同的堆栈。

而且它只发生在我的一个控制器堆栈上。我在另外两个 UINavigationController 控制的栈上 push 同一个 UITableViewController 子类,没有问题。

问题案例的一个区别是 UITableViewController 是从 UIViewController 推送的,该 UIViewController 显示由 UISearchDisplayController 生成的结果表。我不明白为什么这很重要(而且,正如我所说,在 iPhone 上它可以正常工作),但考虑到 UISearchDisplayController 在 UISearchBar 成为第一响应者时隐藏导航栏,这可能很重要。

该问题同时影响 iPad 设备和 iPad 模拟器。我正在使用典型的 UISplitViewController 设计,这些堆栈位于左侧窗格中。在竖屏时,弹出框仍然会出现问题。

【问题讨论】:

【参考方案1】:

将 iphone 应用程序迁移到通用应用程序后,我遇到了同样的问题。这是为我解决问题的方法。打开 MainWindow.xib 并双击窗口对象。如果它以 iphone 尺寸打开,您需要升级您的笔尖。选择文档窗口并选择菜单项文件 > 创建 iPad 版本。将此 nib 保存为 MainWindow-iPad.xib 名称。删除你原来的 MainWindow.xib 并添加这个。完成这些步骤后,问题消失了,我在 iPad 和 iPhone 上都可以正常工作。

干杯,哈利

【讨论】:

谢谢。早该想到的。已升级 MainWindow xib 但未升级此特定视图 xib。

以上是关于UITableView 中的顶部单元格隐藏在 UINavigationBar 后面的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 中的自定义单元格使图像在滚动时重叠

如何检测 UITableView 滚动?

在不中断用户滚动的情况下将单元格添加到 UITableView 的顶部

从 UITableView 隐藏单元格

在 UITableView 中隐藏/显示单元格?

iOS UITableView 隐藏标题空间