我们桌子的对齐工作正常,除了顶部单元的顶部对齐,它们会流入"载体区域"。要解决这个问题需要什么?
我们正在使用自我调整大小的细胞:
public Customer findPersonByName(final String name) {
return mockCustomerDatabase.stream().filter(p -> p.getName().equals(name)).findAny();
}
当前限制概述:
答案 0 :(得分:3)
基本上Apple不希望你做你正在做的事情。查看Apple的应用程序(设置,邮件等)。您将从不看到顶部没有导航栏的全屏桌面视图。所以模仿那个。而不是打击框架,将视图控制器包装在UINavigationController中,让导航栏自动向下推动表格视图的顶部。
答案 1 :(得分:2)
通常当您使用导航控制器来包装视图控制器时,将为您设置TopLayoutGuide
(和BottomLayoutGuide
,并使用您可以在情节提要文件中设置的“调整滚动视图插入”,它将自动设置最外层滚动视图的contentInsets
以供您使用。但由于您没有使用导航控制器将视图控制器包装在此处,因此您有三个选项。
<强> 1。手动将表视图的框架设置为偏移状态栏的高度。
我们只是将表格视图向下移动20个点并缩短20个点。理想的地方是代码中的某个地方,我们知道每次更改superview的边界时都会调用它。其中一个是viewDidLayoutSubviews
。
尝试将此代码放入视图控制器的代码中。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.view.superview!.backgroundColor = UIColor.whiteColor()
let insets = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0)
self.view.frame = UIEdgeInsetsInsetRect(self.view.superview!.bounds, insets)
}
请注意,我必须将superview的背景颜色设置为白色,因为superview(可能是UIWindow
)可能没有背景颜色,并且它会使顶部显示为黑色。通常在生产代码中,您可能需要在设置框架之前检查superview的绑定是否真的发生了变化。
<强> 2。使用UIViewController
并添加UITableView
作为子视图。
这样,Interface Builder将允许您设置所需的所有约束。
第3。只需使用UINavigationController
它会像大多数应用程序顶部都有导航栏一样。这可能不是你想要的。但我很少看到没有导航控制器包装的表视图。
答案 2 :(得分:0)
选择您的表格视图。在屏幕的右下角(将对象拖动到屏幕的左侧),您将看到4个小按钮。如果你点击右边的第二个(一个有两条线到它的边的方格),你会看到一个小的子菜单,上面写着添加新的约束。在它下面你有一个有4个值的正方形(右上角 - 左下角)。确保顶部为0,然后单击半透明的红色虚线。它应该变成坚实的红色。现在只需点击&#34;添加约束&#34;底部的按钮就完成了。