我有一个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
之外的左下角,它应位于其中心。
如果碰到目标,怎么能让它停留在目标的中间?
答案 0 :(得分:0)
尝试:
self.center = CGPoint(x: targetHeight/2, y: targetWidth/2)