防止 UIStackView 中的内在内容大小

Posted

技术标签:

【中文标题】防止 UIStackView 中的内在内容大小【英文标题】:Prevent Intrinsic Content Size in UIStackView 【发布时间】:2015-08-29 13:05:25 【问题描述】:

我从一个空的垂直堆栈视图和一个大于其固有内容大小的按钮开始。将按钮拖入堆栈视图会导致它更改为其固有的内容大小。解决此问题的方法是在按钮标题前后添加空格。 有没有更好的方法来做到这一点?

我想要的是堆栈视图中的按钮看起来像这样:

不是这个:

是的,您可以限制按钮的长度,但我不想这样做。 UIStackView 的想法是让它为您处理必要的约束。

【问题讨论】:

【参考方案1】:

虽然这可能不是一般意义上的最佳方法,但对于您的特定用例,您可以设置按钮的 contentEdgeInsets

self.myButton.contentEdgeInsets = UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0);

这仍将使用 intrinsicContentSize,但它会为您提供您正在寻找的填充。如果您想要一个精确的宽度而不考虑按钮的标题,那么这不是适合您的解决方案。

【讨论】:

以上是关于防止 UIStackView 中的内在内容大小的主要内容,如果未能解决你的问题,请参考以下文章

如何根据内容调整 UIStackView 的大小?

如何根据其内容调整UIStackView的大小?

NSTextView 的内在内容大小

如何根据内容动态制作 Swift UIStackView 大小?

如何动态地将动态大小的 UIButtons 插入 UIStackView?

UIStackView 的子视图具有固有大小,但仍然忽略包含优先级的内容