在iOS 8/Xcode 6 GM Seed上使用autolayout大小时,UIScrollView会中断

Uza*_*aak 7 objective-c uiscrollview autolayout xcode6 ios8

如何使用自动布局来计算其内容大小?

每当Scroll视图(带有Autolayout)存在时,Xcode 6似乎会创建一个"UIView Encapsulated Layout Height"约束,并且此约束将强制将高度设置为帧高度(从而使滚动视图的滚动功能无效).

布局破碎 -  Xcode 6 GM Seed中的iPhone 5s模拟器

错误:

2014-09-09 21:06:01.059 ScrollViewLayoutBreaking[24488:88731] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSLayoutConstraint:0x7f9a19ebd150 V:[UIView:0x7f9a19ea7f90(530)]>",
    "<NSLayoutConstraint:0x7f9a19ec1370 V:[UIView:0x7f9a19ebd5e0(110)]>",
    "<NSLayoutConstraint:0x7f9a19ea9ee0 V:[_UILayoutGuide:0x7f9a19ec18d0]-(0)-[UIView:0x7f9a19ea7f90]>",
    "<NSLayoutConstraint:0x7f9a19ec1fa0 V:[UIView:0x7f9a19ea7f90]-(0)-[UIView:0x7f9a19ebd5e0]>",
    "<NSLayoutConstraint:0x7f9a19e8d270 V:[UIView:0x7f9a19ebd5e0]-(5)-[_UILayoutGuide:0x7f9a19ec2260]>",
    "<_UILayoutSupportConstraint:0x7f9a19ea0ac0 V:[_UILayoutGuide:0x7f9a19ec18d0(0)]>",
    "<_UILayoutSupportConstraint:0x7f9a19ea7380 V:|-(0)-[_UILayoutGuide:0x7f9a19ec18d0]   (Names: '|':UIScrollView:0x7f9a19ea76a0 )>",
    "<_UILayoutSupportConstraint:0x7f9a19e21d00 V:[_UILayoutGuide:0x7f9a19ec2260(0)]>",
    "<_UILayoutSupportConstraint:0x7f9a19e8a930 _UILayoutGuide:0x7f9a19ec2260.bottom == UIScrollView:0x7f9a19ea76a0.bottom>",
    "<NSLayoutConstraint:0x7f9a1c003f50 'UIView-Encapsulated-Layout-Height' V:[UIScrollView:0x7f9a19ea76a0(504)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f9a19ebd150 V:[UIView:0x7f9a19ea7f90(530)]>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
Run Code Online (Sandbox Code Playgroud)

编辑:此滚动视图中的所有视图都是自动循环的,并已固定到滚动视图的顶部和底部以及两侧.我知道未能在所有四个方面绑定它将无法创建内容大小.iOS 7/XCode 5中的自动布局和滚动是正确的,但iOS 8/XCode 6中完全相同的代码和故事板中断.

Uza*_*aak 0

我想我会回答这个问题,因为到目前为止它收到了答复。

代码自动布局正确。正如问题中所述,相同的代码使用 Xcode 5 和 iOS 7 生成了一个完美的、没有警告/错误的滚动视图,并且会打破我没有在 Xcode 6 GM Seed 和 iOS 8 中手动创建的布局约束。

看起来这是一个 Xcode 6 GM Seed bug,相同的代码实际上在第一次发布后的 Xcode 6 的未来更新中无缝工作,没有任何约束破坏。