【问题标题】:drag and drop UIView inside another (UIPanGesture recognizer)将 UIView 拖放到另一个(UIPanGesture 识别器)中
【发布时间】:2017-06-05 15:51:29
【问题描述】:

我正在尝试将屏幕上的 UIView 拖到另一个 UIView 中 我在拖放时比较他们的帧以检查是否(bead1 与帧中的 hole1 匹配) 我可以拖放就好了,但问题是当我拖动(bead2 到孔 2)时,bead1 自动放置在 hole1 中(就像代码中的第二个 IF 变为 true) 请帮助这里的功能:

func draggingView(_ sender: UIPanGestureRecognizer){

let point = sender.location(in: view)
let draggingView = sender.view!
draggingView.center = point
print(point)
   if sender.state == .ended && bead1.frame.midX  != 
hole1.frame.midX  {
            print("false")
            bead1.center = CGPoint (x: view.frame.width / 2 - 25, y: 
  view.frame.height / 2)
           }
     if sender.state == .ended && bead1.frame.midX  == 
           hole1.frame.midX {
         bead1.center = hole1.center
         imageToShow.isHidden = false
        // sender.isEnabled = false
        print("True")
       }

  if sender.state == .ended && bead2.frame.minX - 10 != 
   hole2.frame.minX - 10{
    print("false")
    bead2.center = CGPoint (x: view.frame.width / 2 + 25, y: 
 view.frame.height / 2)
  }
 if sender.state == .ended && bead2.frame.minX - 10 == hole2.frame.midX 
 - 10{ 
 bead2.center = hole2.center
         imageToShow.isHidden = false
        // sender.isEnabled = false
        print("True")

  } 

 } 

【问题讨论】:

    标签: swift3 drag-and-drop uipangesturerecognizer nested-if


    【解决方案1】:

    我终于可以修好了.. 我实际上需要检查一个 UIView 是否包含另一个 UIView,然后将每个 UIView 与另一个标签进行比较(我需要为每个 UIView 设置一个标签),如下所示..

        hole1.tag = 1
         bead1.tag = 1
         if hole1.tag == bead1.tag{
             print("Bead1 IS IN!")
    
         }else{
            print("bead1 IS OUT!!!!")
      }
    

    然后 检查它是否包含其他的中心

     if bead1.frame.contains(hole1.center)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      相关资源
      最近更新 更多