子视图内容在 Interface Builder 中被神秘地偏移了?

Subview content being mysteriously offset in Interface Builder?

我在 Interface Builder 中遇到奇怪的行为。我几乎觉得这是一个小故障,但我希望我只是误会了什么,或者有人知道我正在经历什么奇怪的 AutoLayout 行为,或者其他什么。我会尽力描述它...

我在 Interface Builder 中有一个 ViewController,只有一个 UITextView。 TextView 没有什么异常,我只是将它从侧边栏拖入,这是我添加的第一件事。但问题是:文本偏移了大约 50 磅。 Size Inspector 中没有任何内容可以解释它,文本只是间隔开。但是,如果我单击并拖动它,文本会弹回到顶部。然后我把它放在一个新的地方,文本又被偏移了。

这里真的很奇怪:如果我将 UICollectionView 拖到同一个 ViewController 中,没问题(默认单元格就在左上角),但是一旦我删除了 TextView ,默认单元格在 CollectionView 中向下移动了 50 点!现在我有一个带有偏移单元格的 CollectionView,如果我将新的 TextView 拖回原处,没问题,但是删除 CollectionView 会将偏移量添加回新的 TextView!视图的位置无关紧要(在添加时或之后),旧视图将始终偏移。

并且,只是为了增加一些奇怪的剂量:无论哪个视图偏移,如果我单击并拖动它来移动它,另一个视图都会偏移,直到我将它放到新位置。哦,完全删除 ViewController 并重新开始没有任何作用。行为仍然存在。

这是什么黑魔法?!这是我第 8 个 ViewController 添加到我的 Storyboard 中(如果你包含像 TabBarControllers 等抽象 ViewControllers 则第 12 个),其中 none 个有这个问题。为什么会存在这种强制抵消,我该如何阻止它?这是 AutoLayout 的一些奇怪的排列吗?或者这听起来像是一个真正的故障,我应该 post 上技术支持论坛吗?

编辑: 明确一点:当应用程序在模拟器中为 运行 时,偏移量确实出现。 IB 显示框架没有改变,内容在框架内偏移,但不管它是什么,它确实会出现在最终的应用程序中。

答案原来是在 ViewController 上关闭 "Adjust Scroll View Insets"。

ViewController 出现这样的行为有点奇怪,调整单个 ScrollView 而不考虑其位置或大小,但至少这是一个简单的修复。