我的问题可能有点特殊,但是:
我的视图层次结构看起来像这样(简化):
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偏移了。导航栏甚至考虑了偏移量,并被绘制得更小。
我的问题:这是怎么回事?这是错误吗?我在做错什么吗?
感谢您的帮助!