按钮位置因不同的iphone而异

时间:2016-04-19 03:38:32

标签: ios autolayout storyboard

如何让按钮在所有不同版本的iphone上保持相同的位置?我有一个背景图片,除此之外,我有一个按钮。 This is for iPhone 6.

This one is for iphone 5.

无论如何我可以为按钮提供固定位置吗?

以下是基于故事板的应该是什么样子。 enter image description here

1 个答案:

答案 0 :(得分:4)

所有iOS设备包含4&#34;,4.7&#34;和5.5&#34;屏幕(自iPhone 5以来的所有iPhone和自第5代以来的所有iPod)具有相同的屏幕宽高比,16:9,因此如果这些是目标设备,则可以使用故事板中的约束而无需代码。< / p>

你发布了iPhone 6尺寸的屏幕截图。 (专业提示:在模拟器中按⌘S将屏幕截图保存到桌面,这样您就不必尝试手动裁剪。)在这张照片中,您可以“将按钮的下边缘放在屏幕下边缘上方约300像素= 150点处。 iPhone 6的屏幕高667点。

所以第一步是在你的根视图中添加一个“spacer”视图。将其背景颜色设置为您可以看到的颜色,并将其隐藏。 (隐藏视图仍然参与布局。)将垫片固定在根视图的左下边缘。使它宽20点。宽度并不重要。在spacer和根视图之间创建一个等高的约束。然后编辑等高约束。将乘数设置为150:667(使用该字符串,Xcode将为您进行除法)。这是它应该是什么样子:

spacer configured

现在约束按钮的下边缘等于垫片的上边缘:

button bottom constraint

我们可以使用“辅助编辑器”中的“预览”模式查看按钮在不同屏幕尺寸上的放置方式:

previews

根据要求,按钮“始终位于模糊黄线的顶部”。

如果您还想支持3.5英寸屏幕,并将背景图像视图的模式设置为“Aspect Fit”(这将在图像的两侧留下空白区域)或“Scale To Fill”(这将会挤压)图像有点),然后这个布局将按原样运行。

如果您还想支持3.5英寸屏幕并且使用不同裁剪的背景图像(例如,您使用模式“Aspect Fill”),则需要在代码中替换间隔器的高度约束。设备的屏幕尺寸。