我有一个复杂的视图层次结构,内置在Interface Builder中,嵌套的UIStackViews.每当我隐藏我的内部堆栈视图时,我都会收到“不能令人满意的约束”通知.我已经跟踪到这一点:
( "<NSLayoutConstraint:0x1396632d0 'UISV-canvas-connection' UIStackView:0x1392c5020.top == UILabel:0x13960cd30'Also available on iBooks'.top>","<NSLayoutConstraint:0x139663470 'UISV-canvas-connection' V:[UIButton:0x139554f80]-(0)-| (Names: '|':UIStackView:0x1392c5020 )>","<NSLayoutConstraint:0x139552350 'UISV-hiding' V:[UIStackView:0x1392c5020(0)]>","<NSLayoutConstraint:0x139663890 'UISV-spacing' V:[UILabel:0x13960cd30'Also available on iBooks']-(8)-[UIButton:0x139554f80]>" )
具体来说,UISV间距约束:当隐藏UIStackView时,它的高约束得到一个0常量,但这似乎与内部stackview的间距约束冲突:我的Label和Button之间需要8个点,这与隐藏约束不可调和,所以约束崩溃.
有没有解决的办法?我已经尝试递归隐藏隐藏的堆栈视图的所有内部StackViews,但这会导致内容浮出屏幕的奇怪动画,并导致严重的FPS丢失启动,同时仍然无法解决问题.
解决方法
理想情况下,我们可以将UISV间距约束的优先级设置为较低的值,但似乎没有办法.