最佳答案
所有具有 4"、4.7"和 5.5"屏幕的 iOS 设备(从 iPhone 5 开始的所有 iPhone 和从第 5 代开始的所有 iPod)都具有相同的屏幕纵横比,16:9,所以如果这些是目标设备,这可以通过 Storyboard 中的约束并且没有代码来实现。
您发布了 iPhone 6 大小的屏幕截图。 (专业提示:在模拟器中按 ⌘S 将屏幕截图保存到桌面,这样您就不必尝试手动裁剪它。)在这张照片中,您将按钮的底部边缘放置了大约 300 像素= 屏幕底部边缘上方 150 点。 iPhone 6 的屏幕高度为 667 点。
所以第一步是在你的 Root View 中添加一个“间隔” View 。将其背景颜色设置为您可以看到的颜色,并将其隐藏。 (隐藏 View 仍然参与布局。)将垫片固定在 Root View 的左边缘和下边缘。使其宽 20 点。宽度其实并不重要。在垫片和 Root View 之间创建等高约束。然后编辑等高约束。将乘数设置为 150:667
(使用该字符串,Xcode 将为您进行除法)。它应该是这样的:
现在将按钮的底部边缘限制为等于垫片的顶部边缘:
我们可以使用助手编辑器中的预览模式查看按钮如何放置在不同的屏幕尺寸上:
根据要求,该按钮“始终位于模糊的黄线之上”。
如果您还想支持 3.5 英寸屏幕,并且您将背景 ImageView 的模式设置为“Aspect Fit”(这将在图像的两侧留下空白)或“Scale To Fill”(这会将图像压扁)一点点),那么这个布局将按原样工作。
如果您还想支持 3.5 英寸屏幕并且使用不同裁剪的背景图像(例如,您使用“Aspect Fill”模式),则需要根据设备的屏幕尺寸在代码中替换垫片的高度约束。
关于ios - 不同iphone的按钮位置不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708118/