忽略滚动视图内嵌的tableView中的safeAreaInsets

时间:2018-09-29 23:09:27

标签: ios uitableview uiscrollview uinavigationcontroller uikit

我的问题可能有点特殊,但是:

我的视图层次结构看起来像这样(简化):

View Hierarchy

tableView嵌入在UINavigationController中。

现在,我通过Anchorage设置如下约束:

scrollView.edgeAnchors == edgeAnchors

NavWithTableView.widthAnchor == widthAnchor
NavWithTableView.heightAnchor == heightAnchor - offset

scrollView.edgeAnchors == NavWithTableView.edgeAnchors

现在,safeAreaInsets会创建一个小的间隙,使第一个单元格看起来比其余单元格大一些。下图显示了该问题。我用红色边框标记了差距。第一个单元格显示为绿色。 如您在左图中看到的,由于safeAreaInset导致20pt的差距,UIKit将记帐添加到状态栏。当我点击编辑按钮时,safeAreaInsets会自行纠正并且间隙消失了(右图)。 UIKit会以某种方式认为这是因为NavWithTableView固定在scrollsView的顶部(而scrollView的则固定在superView的顶部),因此应该提供额外的20pt safeAreaInset,这是不正确的,因为NavWithTableView通过scrollView偏移了。导航栏甚至考虑了偏移量,并被绘制得更小。

The Problem

我的问题:这是怎么回事?这是错误吗?我在做错什么吗?

感谢您的帮助!

0 个答案:

没有答案