【问题标题】:Positioning Button over Image在图像上定位按钮
【发布时间】:2015-09-12 13:17:29
【问题描述】:

我有一个全屏 ImageView(边距约束),其中一个图像处于“Aspect Fit Mode”,我需要一个按钮来覆盖所有设备上该图像的特定部分。

我尝试以不同的方式设置约束,但没有任何好的结果。

我希望有人可以帮助我。

在这里你可以找到我想要的截图:

黄色块是按钮,我希望它位于任何屏幕尺寸的肩上。

这是 iOS 8。

【问题讨论】:

  • 您能具体告诉我们您尝试了哪些限制条件吗?最终输出必须是什么样子?
  • 又是什么问题?黄色是否挡住了您想要定位的按钮,以便在任何情况下它始终出现在身体的肩膀上(iPhone */iPad *,纵向/横向模式?)
  • 你能告诉我这些设备是通用的还是只是 iPhone
  • 是的,黄色块是按钮,我希望它只出现在 iPad 的纵向和横向肩上。
  • 欢迎来到 Stack Overflow。我已将您的图片嵌入到您的问题中。您将来可以通过单击edit 或按 Cntrl+G.. 使用图像按钮自己执行此操作。

标签: ios xcode uiimageview storyboard constraints


【解决方案1】:

尝试比例约束。 将以下 4 个约束添加到您的按钮(值不准确)

  1. 使用 ImageView 为您的按钮提供比例宽度约束。例如,按钮宽度将变为 ImageView 宽度的 10%。
  2. 使用 ImageView 为您的按钮提供比例高度约束。例如,按钮高度将变为 ImageView 高度的 10%。
  3. 现在按钮的中心 y 是 ImageView 中心 y 的 40%(值是近似值)尝试不同的值来实现您的目标
  4. 现在按钮的中心 x 是 ImageView 中心 x 的 80%。

Apple 建议使用比例约束。尝试稍微更改百分比值以适合肩部的按钮。一旦你把按钮放在肩上,这些约束在所有设备上都会很好看。 谢谢

【讨论】:

  • 我已经尝试过了,但它不起作用,因为约束必须与 UIImage 成比例,而不是与 UIImageView 成比例
  • 我编辑我的答案。我对其进行了测试,它在纵向和横向模式下都可以正常工作。首先将您的 ImageView(image) 从所有四个侧面绑定到父视图,然后将这些约束应用于您的按钮(与图像成比例)。
  • 如何给促销宽度?我在 % 选项中看不到宽度。
  • @deepakssn :控制并从一个元素拖动到另一个元素,选择相等的宽度。现在将乘数更改为 0.8(这意味着 element1 的宽度是 element2 的 80%)
  • 谢谢@Irfan。我会试试的。
【解决方案2】:

如果两个元素在同一个视图中,只需在视图控制器场景中拖动图像下方的按钮即可。

【讨论】:

  • 这是不正确的。该按钮不会在所有设备/方向上不受限制地保留在该位置。
【解决方案3】:

只需将中心垂直和水平中心以及相等的高度和宽度添加到图像,然后使用乘法器使其位于您想要的位置。

【讨论】:

猜你喜欢
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
相关资源
最近更新 更多