将 UIView 拖放到另一个(UIPanGesture 识别器)中
drag and drop UIView inside another (UIPanGesture recognizer)
我正在尝试将屏幕上的一个 UIView 拖到另一个 UIView 中
我正在比较它们的帧,同时拖放以检查(bead1 匹配帧中的 hole1)
我可以很好地拖放,但问题是当我拖动(珠子 2 到孔 2)时,珠子 1 自动放置在孔 1 中(就像代码中的第二个 IF 变为真)
请帮助这里的功能:
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")
}
}
我终于可以修好了..
我实际上需要检查一个 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)
我正在尝试将屏幕上的一个 UIView 拖到另一个 UIView 中 我正在比较它们的帧,同时拖放以检查(bead1 匹配帧中的 hole1) 我可以很好地拖放,但问题是当我拖动(珠子 2 到孔 2)时,珠子 1 自动放置在孔 1 中(就像代码中的第二个 IF 变为真) 请帮助这里的功能:
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")
}
}
我终于可以修好了.. 我实际上需要检查一个 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)