我在iOS 9 SDK中使用UIStackView。 stackview的高度为44点。我在StackView中有一个UILabel和UIView,如下所示:
现在,我想让绿色视图远小于44 ..非常像20.我怎么能这样做?
更新:如果没有UIStackView,我会受到限制:
[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)]>"
)
答案 0 :(得分:24)
答案 1 :(得分:17)
然后你要做的就是在你的绿色视图中添加另一个UIView。使UIView的尺寸为20x20pts。然后将小视图背景更改为绿色,将较大视图的背景更改为清除。
也就是说,这个解决方案并不需要堆栈视图,并且可能会使您的UI过于复杂。我建议只使用autolayout。
答案 2 :(得分:0)
通过将宽度和高度约束的优先级设置为800或更高,可以轻松修复断裂约束问题。
答案 3 :(得分:0)
我想在这里发布我的答案,以便其他人可以看到,尽管与OP的问题略有不同。
我正在尝试调整包含UIStackView的UIView的大小,并且约束被打破。我正在将UIView的高度限制更改为0到66之间,这取决于是否有相关信息显示堆栈视图正在显示。
我能够通过删除视图内部堆栈视图的顶部和底部约束,并将其设置为垂直居中来修复破坏约束。这样可以使我的表格视图中的滚动更加流畅。