2017-06-05 169 views
0

我想拖動一個UIView在屏幕上在另一個UIView 我比較他們的幀,同時拖放檢查是否(珠1匹配幀中的hole1) 我可以拖放就好了,但問題是,當我拖動(bead2到孔2)bead1自動地被放置在孔1(如第二IF代碼爲真) 請幫助這裏的功能:拖放UIView在另一個(UIPanGesture識別器)

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") 

    } 

} 

回答

0

我終於可以修復它.. 我實際上需要檢查一個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)