我刚刚创建了一个没有任何编码的新xcode项目。我刚刚在故事板上工作过。我有一个导航控制器。我的RootViewController有一个带有静态单元格的TableView,分为3个部分(Grouped)。我删除的部分标题。我的下一步是改变各部分之间的距离。顶部我说4和底部4也是。现在看起来像这样:
现在我的问题:第一部分和顶部之间的大小非常大(我认为32因为这是部分之间的自动距离)。只有我找到的东西是大小检查员 - 内容插入。这被设置为自动。没有选择我可以在自己身上放一些值。如果我从不选择那个,则该部分显示在Root View Controller标题下。我的尺码检查员看起来像这样:
有谁能告诉我如何缩小viewController顶部和第一部分之间的大小?我希望第一部分和根视图控制器的标题之间的大小为16。
有没有办法对整个项目进行更改,以便即将推出的导航控制器的第一部分和标题之间的桌面视图大小为16?
我尝试了什么:我发现了这个问题Why is there extra padding at the top of my UITableView with style UITableViewStyleGrouped in iOS7这里有人要求提供tableViews。我在那里做的解决方案对我没有用处:
半正确:一种解决方案是在代码中手动更改contenInset。我不喜欢这个,因为我必须在我的代码中输入16点。我不知道32的标题来自。所以我不知道16分将永远存在。所以我想要一个更安全的未来解决方案。这是一个难以解决的问题:
self.tableView.contentInset = UIEdgeInsetsMake(-16, 0, 0, 0)
答案 0 :(得分:1)
答案 1 :(得分:1)
iOS11纯代码解决方案
任何想要在纯代码中执行此操作并删除35px空白空间的人都需要向tableHeaderView
添加tableView
- 它显示为nil
只是将其设置为默认大小调整35px
即
tableView.tableHeaderView = tableHeaderView
var tableHeaderView:UIView = {
let view = UIView()
view.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: CGFloat.leastNormalMagnitude)
return view
}()
注意设备宽度为您的边界/视图宽度,高度为不 0
- 但CGFloat.leastNormalMagnitude