按钮与预期的iOS Autolayout并不完全相同

按钮与预期的iOS Autolayout并不完全相同,ios,autolayout,constraints,Ios,Autolayout,Constraints,我正在尝试制作“两个等宽按钮”,正如《苹果自动布局指南》中所描述的那样 在interface builder(Main.storyboard)的预览中看起来还可以,但当我尝试更改设备时,我发现某些设备的宽度不同。 我怎样才能解决这个问题?如何使用约束或其他技术使所有设备的按钮宽度相等 更新示例: 宽度可以 宽度不合适 将您的按钮放在UIStackView水平视图中,并将分布属性设置为均匀填充 查看此示例。按钮的宽度没有问题。由于两个按钮之间的差异为0.5点,因此可能无法显示相同的宽度 只

我正在尝试制作“两个等宽按钮”,正如《苹果自动布局指南》中所描述的那样

在interface builder(Main.storyboard)的预览中看起来还可以,但当我尝试更改设备时,我发现某些设备的宽度不同。 我怎样才能解决这个问题?如何使用约束或其他技术使所有设备的按钮宽度相等

更新示例:

宽度可以

宽度不合适


将您的按钮放在
UIStackView
水平视图中,并将
分布属性设置为
均匀填充


查看此示例。

按钮的宽度没有问题。由于两个按钮之间的差异为0.5点,因此可能无法显示相同的宽度

只需手动检查两个按钮的宽度,它们之间的差异可能不会超过1点

请看以下快照:

iPhone5

iPhone8

iPhoneX


请指定您的约束是否可以使用可见的约束更新图像?约束大小与《自动布局指南》中的相同:1。短按钮。前导=Superview.LeadingMargin 2.长按钮。前导=短按钮。尾随+标准3.长按钮。尾随=Superview.TrailingMargin 4.底部布局指南。顶部=短按钮。底部+20.0 5.底部布局指南。顶部=长按钮。Botton+20.0 6.短按钮。宽度=长按钮。宽度I更新的屏幕截图。如果您尝试相同的示例,是否所有设备的宽度都相同?好的,我来看看这个。但是我从堆栈视图到常规约束,因为尽管按钮的纵横比相同,但在堆栈视图中我有相同的问题。宽度稍有不同,但我似乎还是错了。使用
UIStackView
你不需要在按钮中设置约束,我最终需要“手动”创建一个
UITabBar
,我总是使用
UIStackView
来实现这个目标。如果差值不超过1分,是否视为预期行为?苹果在文档中有这样说吗?我认为任何不同的尺寸都是错误的,没有例外。我花了大约一个多星期的时间试图在我的项目中解决这个问题。=))那么不同设备的X和Y呢?它们是否有与宽度相同的规则-可接受的差异<1点?@Val-这可能被认为是苹果的错误。苹果公司对此没有具体规定。我可以向你解释这个问题,因为我有同样的问题,根本没有解决办法。