具有自动布局的 UIScrollView 在 iOS 7 和 iOS 8 中具有不同的大小

UIScrollView with Autolayout has different size in iOS 7 and iOS 8

很简单。在 Xcode 6 中,我将 scrollView 添加到覆盖整个屏幕的视图中。添加这样的约束:

然后在scrollView中添加一个contentView:

然后添加示例标签:

当我在 iOS 8 的设备上 运行 时出现问题:滚动视图宽度为 320 但在 iOS 7 宽度的设备上是 320+16 = 336

我在这里做错了什么?为什么滚动不会保持 320?这导致我的自定义 collectionView flowLayout 在 iOS 7.

中无法正常工作

我猜是因为使用了 iOS 8 中引入的边距。但我想知道在 IB 中布局视图时我不使用边距。经过几个小时的努力,今天我看到 我已经为这个 View 控制器的容器使用了边距。

删除边距解决了问题。

所以 如果你想支持 iOS 7 及以下版本,请在界面构建器中添加新约束时关闭对边距的约束