我真的很想自己解决这个问题,但现在已经有3个小时了,我不认为这种问题值得花费一半的时间,所以我在这里寻求帮助。
这是auto-layout problem
,所以我会尽力正确说明。
我有一个stack view
在故事板中包含两个labels
(O
和_
。问题是,我无法修正stack view
的大小,以便在较小的屏幕上显示label's font size
auto-shrink
并同时在较大的屏幕上正确显示... < / p>
在iPhone 5s上效果最佳:
故事板=
约束=
模拟器=
iPhone 8结果=
在iPhone 8,8 +和更大的屏幕上效果最佳:
故事板=
约束=
模拟器=
iPhone 5s和更小的屏幕结果=
我想这是StackView
让事情变得比他们应该更难...... labels
内的stack view
没有固定的大小会很棒。我该怎么办?
答案 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”)。
如果没有这两个约束,高度经常会被错误计算,如果布局过程没有“呼吸空间”,也会发生同样的情况,因为约束设置得很紧。