UITableView
向下滚动时是否会在空白处显示单元格?
如果是这样,那么问题可能是UITableView
由于您在视图中具有导航控制器而添加到的插图。插图被添加到表格视图中,以便在未发生滚动时将内容放置在导航栏下方。滚动表格时,内容会滚动并显示在透明导航栏下。当然,只有当表格视图直接在导航栏下方开始时才需要这种行为,这里不是这种情况。
另一件需要注意的事情是,iOS 只为视图层次结构中的第一个视图调整内容插入,如果它是UIScrollView
或者它的后代(例如UITableView
和UICollectionView
)。如果您的视图层次结构包含多个滚动视图,automaticallyAdjustsScrollViewInsets
则只会对第一个进行调整。
以下是更改此行为的方法:
a) 界面生成器
我不确定哪个 Xcode 版本引入了这个选项(在发行说明中没有发现它),但它至少在 5.1.1 版本中可用。
编辑:为避免混淆,这是评论中提到的第三个选项
b) 以编程方式
将此添加到 ie viewDidLoad
(归功于Slavco Petkovski的回答和Cris R的评论)
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c)这可能与老学生有关
您可以通过添加来解决此问题
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
或者,如果您使用的是 IB,并且导航栏不透明(从屏幕截图中看不出来)
- 选择视图控制器
- 打开属性检查器
- 在 View Controller options Extend Edges 部分取消选择“Under Top Bars”