【发布时间】:2014-01-08 08:08:46
【问题描述】:
我的根控制器是 TabBarController(选项卡式应用程序)。其中一个选项卡是 UITableViewController。当我切换到该项目并滚动浏览项目时,它们会显示在顶部的状态栏下方(信号、电池等)。我不想要那个。我希望它是不透明的或......什么的。表格单元格的文本覆盖在状态内容之下,这在视觉上是不和谐的。
我可以在我的 Storyboard 中使用一些我不理解的属性设置来解决这个问题吗?还是我需要在我的子类中添加一些方法?或者也许我需要用其他类型的控制器包装我的 UITableViewController?
我在 Storyboard 属性页面中尝试了 ViewController Layout 和 Extend Edges 设置的多种变体,但似乎都没有更好地改变它。
更新:我认为我的问题与iOS 7: UITableView shows under status bar 非常相似。唯一的区别是我嵌入在 TabBarController 中,这种情况是作为根视图。我尝试了那里列出的嵌入NavigationController 并将Show Navigation Bar 设置为False 的解决方案,但没有任何区别。
屏幕截图:
我的故事板(缩小)显示了一个选项卡式控制器,有 2 个子级,一个单一视图,另一个是表格视图。
标签栏控制器的设置
表格视图控制器的设置
这款应用在我的手机上最终的样子
故事的结局
尽管下面有很多答案,但没有一个真正奏效。有点,但不是真的。我也尝试了 Embed in NavigationController 方法,但也有问题。但确实有效的是:
- 添加 UIViewController
- 设置子控制器与其和标签栏控制器的关系(就像我已经拥有的其他两个一样)
- 在新的 UIViewController 中添加一个 TableView(不是控制器),根据需要定位,它将捕捉到状态栏的底部
- 将 TableView 的
delegate和tableSource设置为新控制器 - 创建自定义 UIViewController 子类,并更新 storyboard 中控制器的类类型
- 将表相关方法从我的自定义 UITableViewController 子类复制到我的新子类中
- 从原始表格中选择我的原型表格单元格,然后按命令+将其拖到新表格视图中
- 也很高兴删除原始 TableViewController(和包装器 NavigationController)
- 更新标签栏项目以匹配之前的项目
- 因为“你很努力”而再打一个
【问题讨论】:
-
您是否在情节提要中尝试过:属性检查器 -> 扩展边缘 -> 取消选中顶栏。 ?
-
@Ilario:是的。没有区别:(
-
@Ilario 为我工作 +1
标签: ios objective-c layout ios7 uitableview