堆栈视图和标签的字体大小

时间:2018-01-22 17:50:31

标签: xcode autolayout storyboard uilabel uistackview

我真的很想自己解决这个问题,但现在已经有3个小时了,我不认为这种问题值得花费一半的时间,所以我在这里寻求帮助。

这是auto-layout problem,所以我会尽力正确说明。

我有一个stack view在故事板中包含两个labelsO_。问题是,我无法修正stack view的大小,以便在较小的屏幕上显示label's font size auto-shrink并同时在较大的屏幕上正确显示... < / p>

在iPhone 5s上效果最佳:

故事板=

iphone5s storyboard enter image description here

约束=

enter image description here

模拟器=

enter image description here

iPhone 8结果=

enter image description here

在iPhone 8,8 +和更大的屏幕上效果最佳:

故事板=

enter image description here

约束=

enter image description here

模拟器=

enter image description here

iPhone 5s和更小的屏幕结果=

enter image description here

我想这是StackView让事情变得比他们应该更难...... labels内的stack view没有固定的大小会很棒。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以将尾随约束trailing = Stack View.trailing - 15的关系从Equal替换为Greater than or equal

例如,您需要:trailing >= Stack View.trailing + 15

以这种方式,堆栈视图的尾部将与superview的后缘有15个点的距离,因此如果没有足够的空间,它将自动缩小。同时,如果有足够的空间,标签将不会被扩展,因为每个标签都会拥抱其内容。

答案 1 :(得分:0)

如果你有一个嵌套的 stackViews(StackView 里面 StackView 里面 StackView 等等),顶部 StackView 必须有顶部和底部约束,但底部必须是“大于”(例如“>=1”)。

如果没有这两个约束,高度经常会被错误计算,如果布局过程没有“呼吸空间”,也会发生同样的情况,因为约束设置得很紧。