【发布时间】:2018-12-13 07:40:30
【问题描述】:
我有一些按钮具有相同的高度和不同的宽度。并且每个按钮的宽度可能会随着用户的操作而改变。
我尝试使用 NSStackView 和两个视图(有助于使 StackView 在超级视图的中心。它们被设置为相等的宽度)。看起来像这样:
但是这个解决方案不能调整每个按钮的宽度,我希望我可以设置按钮框架的大小,并有相等的分布间距
我将在这些按钮上绘制文本和图像,而不是使用 setTitlt: 来设置按钮的标题。
有什么想法吗?谢谢
【问题讨论】:
-
您在正确的轨道上,但我怀疑您需要查看按钮的内在大小。大多数控件视图都有一个 intrinsic 大小,这是视图想要的大小。这会影响内容“拥抱”和“抗压”(CHCR)的优先级;换句话说,自动布局将尝试使每个按钮更宽、更窄或精确到它想要的大小有多难。尝试增加拥抱和压缩优先级,看看它如何影响您的堆栈视图。还要检查堆栈视图属性,因为它的子视图具有 CHCR 优先级覆盖。
标签: macos cocoa autolayout