如果设置为隐藏,iOS UIStackView无法同时满足约束

时间:2016-02-08 09:17:24

标签: ios xcode swift constraints uistackview

我在引用UIStackView时遇到问题。我创建了一个StackView并添加了一些捆绑到另一个StackViews中的项目。现在,我想使用隐藏属性为内部StackView设置动画,以在不同对象之间切换。为此,我在StackView.hidden中的代码中调用ViewDidLoad来隐藏StackView及其中的项目。代码似乎在模拟器中工作,但它会引发错误:

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. 
(
    "<NSLayoutConstraint:0x7fd29d00b460 'UISV-canvas-connection' UIStackView:0x7fd29acdb3b0.top == UIStackView:0x7fd29acdc120.top>",
    "<NSLayoutConstraint:0x7fd29d00b5a0 'UISV-canvas-connection' V:[UISlider:0x7fd29accb620]-(0)-|   (Names: '|':UIStackView:0x7fd29acdb3b0 )>",
    "<NSLayoutConstraint:0x7fd29d00f8d0 'UISV-hiding' V:[UIStackView:0x7fd29acdb3b0(0)]>",
    "<NSLayoutConstraint:0x7fd29d00b9a0 'UISV-spacing' V:[UIStackView:0x7fd29acdc120]-(10)-[UISlider:0x7fd29accb620]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7fd29d00b9a0 'UISV-spacing' V:[UIStackView:0x7fd29acdc120]-(10)-[UISlider:0x7fd29accb620]>

我将内部StackView中的问题确定为间距。如果我将间距切换为0,问题就会消失。但我不想错过间距。我认为另一种选择是隐藏内部StackView中的每个对象,但这是一项巨大的工作,并且隐藏StackView更加简单。有什么想法解决这个问题吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

仅供将来参考:当我想要隐藏UIStackView时,我已经发生了这种情况。我建议您将UIStackView隐藏在另一个UIStackView 中,并将分布设置为填充不按比例填充