ios第一个单元格不是从UITableView的顶部开始的

时间:2016-11-09 12:19:18

标签: ios swift uitableview

我的应用程序有一个导航和UITableView。我将backgroundColor设置为我的tableView。看下面的图片。我不明白为什么第一个单元格不是从UITableView的顶部开始的。 当我在Xcode中使用View Debbuger时,在UITableView中没有使用TableViewWrapperView。

我已经多次搜索过了。我删除了支票Adjust Scroll View Insets并设置了.zero tableview的contentinsets。最后我制作了新项目并再次制作,但我不能。

我该如何解决这个问题!!

enter image description here

9 个答案:

答案 0 :(得分:8)

此问题的简单解决方案

无需为此问题编码。请按照以下简单步骤进行操作

YourStoryboard.storyboard> YourViewController>属性检查器> 取消选中 - 调整滚动视图插图。

这里我附上了截图供参考。

enter image description here

如果您喜欢使用代码我也有解决方案:)

- (void)viewDidLoad {
      self.automaticallyAdjustsScrollViewInsets = false
}

答案 1 :(得分:5)

表格视图会尝试调整自身以适应导航栏,假设导航栏是半透明的,并且必须在其后面显示。

要在storyboard / xib文件集中解决此问题,视图控制器属性会将顶部栏下的边缘扩展为false,如下所示。

enter image description here

答案 2 :(得分:4)

这是为了像我一样尝试上述所有事情并且可能错过了这一点的灵魂。我不小心将tableview样式用作Grouped而不是Plain。

所以将你的Tableview风格设置为" Plain"而不是" Grouped"在xib / storyboard或代码中

目标C

self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];

Swift 4,0

self.tableView = UITableView(frame: CGRect.zero, style: .plain)

答案 3 :(得分:0)

打开故事板并单击包含表视图的表视图控制器/视图控制器。打开属性检查器并取消选中Adjust Scroll View Insets

答案 4 :(得分:0)

打开故事板,点击UITableView。在sizeInspector设置部分高度字段中的HeaderFooter为1。

答案 5 :(得分:0)

我回答我自己的问题。

我不知道top layout guideview的不同之处。 但我决定将顶级约束0设置为view

谢谢。

enter image description here

答案 6 :(得分:0)

在viewcontroller的viewdidload上写下这两行,它将解决你的问题

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;

答案 7 :(得分:0)

在iOS 11及更高版本上找到它,请使用:

    self.tableView.contentInsetAdjustmentBehavior = .never

答案 8 :(得分:0)

iOS 11 发布后的解决方案

tableView.contentInsetAdjustmentBehavior = .never