【问题标题】:Drag Drop UIImageView into subView - Swift 3将 UIImageView 拖放到子视图中 - Swift 3
【发布时间】:2017-01-11 07:14:12
【问题描述】:

我是 Swift 的新手并试图将 UIImageView 拖到 UiView 中,我有三个 UIView 我必须将 UIImageView 拖到任何三个 UIView 中,而不是任何地方。

我已经尝试过 touchesBegan、touchesEnded 方法,但是这 3 个 UIView 中的任何一个都没有拖放。

请任何人给我骨架,将 UIImageView 放到三个 UIView 中的任何一个,

【问题讨论】:

  • 问题不清楚
  • touchesBegan 有一组touches 可以用来查找触摸的位置,touchesMoved 和 touchesEnded 也是如此。 UIView 有一个命中测试point(inside:with:) 来检查一个点是否在视图内。 UIImageViewUIView 的子类,所以也可以调用该方法。
  • 如果这还不够准确,UIView 有一个名为frame 的属性,即CGRectCGRect 有一个名为 intersect(:CGRect) 的方法,在 touchesEnded 期间,您可以使用 UIImageView 检查所有三个 UIViews 以获取 intersect
  • @the_dahiya_boy 我已添加图片,请检查
  • @US-1234 你的措辞不清楚。所以按照how-to-ask这个链接的描述重新组织你的问题

标签: ios swift drag-and-drop


【解决方案1】:

UIImageView 和所有UIViews 可能共享相同的superView,如果你想把UIImageView 放在UIView 里面,你需要移动它。我的意思是您需要将其从 superView 中删除并将其添加到其下方的视图中(如果它们相交)

这就是你要做的:

    1234563并将其添加到 superView)
  1. 当用户触摸结束时,UIGestureRecognizer 也会通知您,此时检查您的UIImageView 下方是否有任何UIViews,如果没有,则将其从@ 中删除987654334@ 并在其下方添加视图。

还有一个WWDC video 涵盖了高级触摸处理技术。

【讨论】:

  • 我可以有示例代码来检查 UIView1、UIView2、UIView3 绑定检查吗?
  • 首先let views: [UIView] 成为您的意见。 let imageView: UIImageView 是你的 imageView。交叉点是这样的:imageView.frame.intersects(views[0].frame),它返回一个Bool
猜你喜欢
  • 1970-01-01
  • 2011-09-17
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2017-10-06
  • 1970-01-01
相关资源
最近更新 更多