使用UIPanGuesture将UIView拖放到另一个UIView

时间:2018-08-02 08:14:59

标签: ios swift uipangesturerecognizer

我想拖动顶部的红色圆圈UIView并放在底部的黑色圆圈UIView上。 当黑色圆圈上至少有50%的位置时,我想放下这个红色圆圈。 但是此方法仅在黑圈的完美位置时执行。 当它在黑色区域圆圈中时,请给我一些解决方案。 下面是我的代码

  if sourceCircleView.frame.contains(destinationCircleView.frame) {
        destinationCircleView.backgroundColor = UIColor.green
        sourceCircleView.isHidden = true
    }
    if sourceCircleView.frame.contains(destinationSquareView.frame) {
        sourceCircleView.backgroundColor = UIColor.red
        UIView.animate(withDuration: 2, animations: {
            self.sourceCircleView.center = self.sourceCircleViewCenter
        }, completion: nil)
    }

1 个答案:

答案 0 :(得分:0)

您可以尝试

if sourceCircleView.frame.intersects(destinationCircleView.frame) {

  //
}

//  或

let rect = sourceCircleView.frame.intersection(destinationCircleView.frame)

// here compare width of rect with destinationCircleView.frame for 50% check

 if rect.width >= ( destinationCircleView.frame.width / 2 )  && rect.height >= ( destinationCircleView.frame.height / 2 ) {
   // intersection more than 50%
 }