使UITableView忽略安全区域

9

我在一个ViewController里面放了一个TableView。 我通过添加约束将TableView拉伸到了View的SuperMargings,并禁用了所有的SafeArea嵌入选项,但是当我运行我的项目时,TableView仍然被SafeArea覆盖。

我该如何让我的TableView在有缺口的iPhone上全屏显示?


你是如何设置AutoLayout的?是通过Storyboard中的约束还是编程方式实现的? - Abhishek Patel
2个回答

28
如果您已经使用约束将 tableView 固定在其父视图上(而不是 safeArea),但 tableView 仍然遵循 safeArea,则自iOS 11以来,UIScrollView(我们知道,UITableViewUIScrollView 的子类)中有一个名为 contentInsetAdjustmentBehavior 的属性。
这个属性是一个四选一的枚举类型,叫做 UIScrollView.ContentInsetAdjustmentBehavior。 您需要将 contentInsetAdjustmentBehavior 设置为 .never

3
任何视图都适用的方法是将表格视图的底部约束与根(或父)视图的底部锚点相关联(而不是安全区域)。
可以在故事板编辑器中双击右侧检查器中的约束,并将第一个项目锚点从安全区域更改为Superview(或任何所需的视图)来完成此操作。
如果需要,则可以自行设置边缘插入(以避免内容部分隐藏在圆形框架角落或缺口后面,如果将相同的过程应用于顶部锚点)。

enter image description here


你能展示故事板中的视图层次结构吗(通过编程也可以)? - jalone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接