【问题标题】:iOS Interface Builder (XCode): Stick elements togetheriOS Interface Builder (XCode):将元素粘在一起
【发布时间】:2017-10-02 15:25:42
【问题描述】:

我在 XCode 8 中遇到自动布局/约束问题。

这是我的两个元素的屏幕截图:

头部是一个图像,而虚线圆圈是一个按钮。我需要将按钮“粘贴”到背景图像上的这个特定位置,但约束不会为我这样做,因为它们总是与更大的布局元素相关,例如查看或顶部布局指南。

是否有可能将元素粘在一起,以便按钮保持在该特定位置(相对于背景中的人的图像)?

【问题讨论】:

  • 您可以添加一个透明视图,然后将其中的 2 个元素居中。
  • 相对于背景视图添加一些视图(清除颜色)并使按钮跟随此视图
  • 如果头部是带有背景的图像,则将背景和图像分开以获得最佳实践
  • 我已经尝试添加一个透明视图并将元素嵌套在其中。但后来我无法点击按钮。我可能做错了什么?
  • 只需将一个 UITapGestureRecognizer 添加到您的图像视图中,因此该功能不需要额外的 UIButton ;)

标签: ios xcode interface-builder constraints xcode8


【解决方案1】:

为此使用手势,没有按钮

@IBOutlet var profileImageView: UIImageView!

在 viewDidLoad 中

    let tabGesture = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped))
    profileImageView.isUserInteractionEnabled = true
    profileImageView.addGestureRecognizer(tabGesture)

和你的功能

func imageTapped() {
    print("image tapped")
}

【讨论】:

    【解决方案2】:

    您可以简单地在控件和图像之间添加约束,同时缩小它们之间的恒定增量(负值将导致它们相交)。另一种选择是使用与 CGRect 相关的 CGGraphics 函数来强制相交。最后,将这些组合在一起应该有助于产生所需的结果。请记住,情节提要上的所有视图都有矩形,并且可以受到外部和相互依赖的对齐方式的约束。

    【讨论】:

      猜你喜欢
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 2012-12-06
      相关资源
      最近更新 更多