如何将可拖动对象放在目标对象的中心

时间:2016-11-07 08:59:15

标签: ios swift uiview uiimage

我有一个UIView是一个目标,一个UIImage是一个可拖动的对象。任务是将UIImage置于UIView内,如果它正在接触它。

这是我的代码:

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let touch = touches.first, let target = dropTarget {
            let position = touch.location(in: self.superview)
            let isOnTarget = target.frame.contains(position)

            if isOnTarget {
                NotificationCenter.default.post(Notification(name: Notification.Name(rawValue:"onTarget")))
                // Make it stay there
                let targetHeight = target.frame.size.height
                let targetWidth = target.frame.size.width
                self.center = CGPoint(x: targetHeight, y: targetWidth)
            } else {
                self.center = originalPosition
            }
        }
    }

此代码存在的问题是,UIImage位于UIView之外的左下角,它应位于其中心。

如果碰到目标,怎么能让它停留在目标的中间?

1 个答案:

答案 0 :(得分:0)

尝试:

self.center = CGPoint(x: targetHeight/2, y: targetWidth/2)