如何使UIButton的位置适应所有iPhone尺寸的背景图像?

时间:2016-07-25 13:52:29

标签: swift xcode

我刚刚开始,我面临一个简单的问题: 我无法在我的故事板中为所有iPhone尺寸调整UIButton图像。我使用的是一个iPhone 6s Plus大小的故事板,因为我有一个。当我运行我的测试时,一切都还可以,但是当我使用iPhone 5模拟器运行我的测试时,没有什么是好的。 此图像显示按钮位于iPhone 6 plus上的好位置,但没有其他尺寸。 我尝试了很多不同的约束,但似乎没有任何效果。

总结:如何设置约束以将按钮定位在背景图片中的圆圈上(如linked drawing所示),无论手机大小如何?

Button Not Aligned With Circle

1 个答案:

答案 0 :(得分:0)

尝试将约束设置为百分比。

  • 按住 - 从按钮拖动到视图。
  • 按住Shift键并单击以选择“水平间距”和“垂直间距”。
  • 单击“添加约束”。 现在,相对于超级视图,按钮应该有2个约束。

  • 在每个约束的“属性”检查器中,检查以确保按钮的X和Y相对于超级视图的后缘和底部。例如:

  

第一项:Button.Center X
  关系:平等   第二项:Superview.Trailing

     

第一项:Button.Center Y
  关系:平等   第二项:Superview.Bottom

  • 在每个约束中,将常量值设置为零。

  • 然后,将乘数值设置为百分比或分数。

例如,如果您希望按钮处于中间点,无论设备大小如何,请输入50%的乘数(如果它不赢取百分比值,则输入1/2或.5它不会接受一个版本的值,但它会接受同一个东西的另一个表达式。)

百分比乘以superview的值。 superview的后沿是最大X值,superview的下边缘是最大Y值。

您的按钮似乎位于视图下方的三分之一左右,左侧大约四分之一的视图。因此,您可以尝试将Button.Center X乘数设置为25%或1/4或.25,将Y乘数设置为33%或1/3或.33

另请注意,在约束的第二项下拉列表中,您可以选择该值是否相对于边距。如果未选中,则乘数使用超视图的整个宽度或高度。选择相对于边距使用超视图的宽度减去任何尾部或底部边距。这可能会贬低你的百分比。我建议在玩你的值时不要选择相对于边距。

以下是结束约束值的图像: Button.Center X Equal PNG.Trailing, Multiplier 26% Button.Center Y Equal PNG.Bottom, Multiplier 46%

请注意,在您查看预览之前,按钮似乎没有居中。为不同大小的手机运行模拟器给了我相同的结果,如预览中所示:按钮正确地居中在圆圈中。