iOS 7 UITableView 在 UINavigationBar 下扩展

Posted

技术标签:

【中文标题】iOS 7 UITableView 在 UINavigationBar 下扩展【英文标题】:iOS 7 UITableView extends beneath UINavigationBar 【发布时间】:2014-01-22 00:12:07 【问题描述】:

项目概述

我有一个UITableViewController 作为UINavigationController 的根视图控制器。它的视图是使用UITableViewStyleGrouped 样式的UITableView。表格视图也有一个UIRefreshControl。我没有使用 nib/xib 文件,一切都是以编程方式创建的。

问题

我的表格视图中第一部分的标题位于导航栏下方。但是,刷新控件位于正确的位置。通常这个问题是由半透明的导航栏引起的,但我的导航栏已经不透明了。

尝试的解决方案

self.edgesForExtendedLayout = UIRectEdgeNone

这不会产生任何变化。

self.tableView.contentInset = UIEdgeInsetsMake(20.0f, 0.0f, 0.0f, 0.0f);

这会将我的表格视图放在正确的位置,但也会导致刷新控件被调低。更不用说这是一个肮脏的解决方案。

【问题讨论】:

你确定这不仅仅是……等等……错觉? 【参考方案1】:

尝试使用:

[self setAutomaticallyAdjustsScrollViewInsets:NO];

【讨论】:

这实际上让一切变得更糟。它又向上移动了 200 像素左右,刷新控件似乎完全消失了(可能完全被导航栏隐藏了。【参考方案2】:

您需要使用普通的视图控制器并将 tableview 添加到所需的位置。 这是因为在 uitableviewcontroller 的情况下,整个 tableview 是 parentview 。我希望你明白我的意思。

【讨论】:

以上是关于iOS 7 UITableView 在 UINavigationBar 下扩展的主要内容,如果未能解决你的问题,请参考以下文章

iOS UI控件7(UITableView)

iOS 7 UITableView 在 UINavigationBar 下扩展

在 iOS 7 上压缩的 UITableView sectionIndexTitles

切换到 iOS 7 后 UITableView 不滚动

UITableView 在 iOS 7 中不根据其高度显示

UITableView 在 iOS 7 中工作,但在 iOS 8 中看起来很糟糕