Ios 在UIStackView控件内调整UIView高度
我使用的是iOS9SDK中的UIStackView。stackview的高度为44点。我在StackView中有一个UILabel和UIView,如下所示: 现在,我想使绿色视图比44小得多。。很像20。我该怎么做 更新:如果没有UIStackView,我将受到破坏性约束:Ios 在UIStackView控件内调整UIView高度,ios,swift,uistackview,Ios,Swift,Uistackview,我使用的是iOS9SDK中的UIStackView。stackview的高度为44点。我在StackView中有一个UILabel和UIView,如下所示: 现在,我想使绿色视图比44小得多。。很像20。我该怎么做 更新:如果没有UIStackView,我将受到破坏性约束: [GT.BubbleView:0x14536610] (Names: '|':UITableViewCellContentView:0x14536fd0 )>", "<NSLayoutConstra
[GT.BubbleView:0x14536610] (Names: '|':UITableViewCellContentView:0x14536fd0 )>",
"<NSLayoutConstraint:0x146b7300 GT.BubbleView:0x14536610.trailing == UITableViewCellContentView:0x14536fd0.trailingMargin>",
"<NSLayoutConstraint:0x146c4000 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14536fd0(286)]>"
[GT.BubbleView:0x14536610](名称:'|':UITableViewCellContentView:0x14536fd0)>“,
"",
""
)如果您试图获得如下所示的20x20正方形:
然后,您只需将另一个UIView添加到绿色视图中。将该UIView的大小设为20x20pts。然后将小视图背景更改为绿色,将大视图背景更改为清除
也就是说,此解决方案不需要stackview,而且可能会使您的UI过于复杂。我建议您只使用autolayout即可。
堆栈视图在以下情况下最有用:
单元格中添加UIStackView
UIStackView
UIStackView
UILabel
拖放到UIStackView
UIView
拖放到UIStackView
绿色UIView
类似子视图添加到粉色UIView
绿色UIView
UILabel
添加任何约束通过将宽度和高度约束的优先级设置为800或更高,可以很容易地解决打破约束的问题。我想在这里发布我的答案,以便其他人可以看到,尽管与OP的问题略有不同 我试图调整包含UIStackView的UIView的大小,但约束正在中断。我正在将UIView的高度约束更改为0到66之间,具体取决于是否存在显示堆栈视图的相关信息
我可以通过移除视图中堆栈视图的顶部和底部约束来修复中断约束,并将其设置为垂直居中。这使得我的表视图中的滚动更加平滑。不幸的是,当我放置20点宽度和高度时,高度完全被忽略,因为它占据了视图的高度UIStackView控件。我甚至试图完全删除UIStackView,但后来我遇到了破坏性约束,我不知道这意味着什么。绿色视图从不显示。谢谢!我手动删除了UIStackView并添加了约束,现在它可以工作了!感谢您谈论堆栈视图的有用之处。您能解释一下为什么需要使用这种情况下的堆栈视图?看起来您有一个非常基本的设置。您希望实现什么?感谢您提供的详细屏幕截图!不幸的是,当我将UIView放在UIStackView中时,它会获取UIStackView的高度。我尝试拖动和更改UIView的高度,但它总是重置回UIStackView的高度。等一下!您为绿色视图添加了一个非常小的堆栈视图。如果我使用多个堆栈视图,我还需要在UIStackView中添加UILabel。谢谢!我手动删除了UIStackView并添加了约束,现在它可以工作了!我可以说这是在使用绿色UIView覆盖粉色UIView吗?