Swift NSLAYOUTACHOR不在UITableViewCell内使用UIScrollView

Swift NSLAYOUTACHOR不在UITableViewCell内使用UIScrollView,swift,uitableview,uiscrollview,autolayout,ios9,Swift,Uitableview,Uiscrollview,Autolayout,Ios9,我试图重构代码,以编程方式在UIScrollView(UITableViewCell的contentView的子视图)上创建自动布局约束,但得到一些不寻常的效果 要替换的代码段是: let scrollViewHorizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|[sv]|",options: [], metrics: nil, views: viewDictionary) viewConstrain

我试图重构代码,以编程方式在UIScrollView(UITableViewCell的contentView的子视图)上创建自动布局约束,但得到一些不寻常的效果

要替换的代码段是:

let scrollViewHorizontalConstraints =
NSLayoutConstraint.constraintsWithVisualFormat("H:|[sv]|",options: [], metrics: nil, views: viewDictionary)
viewConstraints.appendContentsOf(scrollViewHorizontalConstraints) /// scrollviewConstraints is an array!
let scrollViewVerticalConstraints =
NSLayoutConstraint.constraintsWithVisualFormat("V:|[sv]|", options: [], metrics: nil, views: viewDictionary)
我应该能够用新的iOS9 uilayoutachor API替换它,如下所示:

scrollView.leftAnchor.constraintEqualToAnchor(contentView.leftAnchor).active = true
scrollView.rightAnchor.constraintEqualToAnchor(contentView.rightAnchor).active = true
scrollView.topAnchor.constraintEqualToAnchor(contentView.topAnchor).active = true
scrollView.bottomAnchor.constraintEqualToAnchor(contentView.bottomAnchor).active = true
但是,此代码失败(没有错误)。约束未正确构建-生成的scrollView与superview的高度匹配,但与宽度不匹配,尽管它的子视图约束为UITableViewCell contentView的宽度。原始版本可以正常工作


使用新的符号在标准UIView中构建相同的结构是可行的,因此我怀疑有错误,但如果有任何建议,我将不胜感激。

这似乎是Xcode中的某个错误。实际上,我已经创建了一个新项目,并从头开始构建了自动布局代码(使用uilayoutachor),并且它可以正常工作。我已经确保代码是最初使用的代码的逐字副本,因此只能假设它是系统中某个地方的小精灵。奇怪的是Xcode有时也会这样

这似乎是Xcode中的一个bug。实际上,我已经创建了一个新项目,并从头开始构建了自动布局代码(使用uilayoutachor),并且它可以正常工作。我已经确保代码是最初使用的代码的逐字副本,因此只能假设它是系统中某个地方的小精灵。奇怪的是Xcode有时也会这样

您是否尝试检查了scroll视图的contentSize属性?刚刚选中-contentSize值与使用XCode中的视图调试器显示的值匹配:高度34pt,宽度0pt我刚刚构建了一个小型测试应用程序,它剥离了scrollview的大部分自定义实现,并正确构造了约束。这表明代码中存在一些不明显的冲突-我将继续重新实现功能,看看会发生什么情况。您可以尝试显式设置内容大小吗?显式设置内容大小也没有帮助(而且,碰巧的是,这会破坏我对不同大小的类和方向的实现)。感谢您的建议。您是否尝试过检查滚动视图的contentSize属性?刚刚选中-contentSize值与使用XCode中的视图调试器显示的值相匹配:高度34pt,宽度0pt我刚刚构建了一个小型测试应用程序,该应用程序剥离了滚动视图的大部分自定义实现,并且限制条件正在更改结构正确。这表明代码中存在一些不明显的冲突-我将继续重新实现功能,看看会发生什么情况。请尝试显式设置内容大小?显式设置内容大小也没有帮助(而且,碰巧的是,这会破坏我对不同大小的类和方向的实现)