【发布时间】:2015-11-06 06:46:28
【问题描述】:
对于界面构建器来说真的很新。我有 5 个均匀分布的按钮。在 iPhone5 屏幕中设置。我希望按钮和边界之间的间距保持不变,但按钮的大小会随屏幕增大(保持相同的纵横比)。
我将如何为此设置约束?我是否需要在按钮之间放置隐形垫片或其他东西才能做到这一点?
【问题讨论】:
-
总是会有 7 个按钮?
标签: ios interface-builder constraints
对于界面构建器来说真的很新。我有 5 个均匀分布的按钮。在 iPhone5 屏幕中设置。我希望按钮和边界之间的间距保持不变,但按钮的大小会随屏幕增大(保持相同的纵横比)。
我将如何为此设置约束?我是否需要在按钮之间放置隐形垫片或其他东西才能做到这一点?
【问题讨论】:
标签: ios interface-builder constraints
这样做:
将所有按钮放入UIView
将约束设置为 UIView 为 leading、top、Trailing、height 和 宽度。
将 UIView 内所有按钮的约束设置为 top、leading、width 和 height .
然后选择第一个按钮和UIView一起,并使它们宽度相等并根据您需要的按钮数量设置此约束的乘数,此时将优先级设置为@ 987654324@ 宽度限制为 900(这很重要)。与按钮的宽度限制相同。
现在选择所有按钮并将它们设置为等宽,然后根据按钮的宽度设置此约束的乘数。
删除除第一个按钮外的所有按钮的宽度限制。
【讨论】:
查看层次结构:
最终输出:
解决方案:
我已经开始从中间的按钮(即 Button4)实现约束
1) Holder View 的约束
HolderView.centerY = superview.centery
HolderView 对超级视图的尾随/前导约束
2) Button4 上的约束
Button4.width = Button4.height
Button4.width = HolderView.superview.width * (1/7) - 10
(是的,它不是错字 Button4.width 是相对于屏幕宽度而不是其持有者视图的宽度)
Button4.trailing 到 Spacer,Button4.leading 到 Spacer
Button4 对 superview 的底部/顶部约束
使所有其他按钮等于 Button4(中间的按钮)
3)如果您需要对任意数量的按钮进行相同的排列,您只需要使用中心按钮的宽度限制
示例项目:
注意:此解决方案仅适用于奇数个按钮
【讨论】: