I am using these pieces of code to make coordinates global.
let referenceView = self.view
let dropArea = referenceView.convertRect(self.dropAreaView1.bounds, fromView: self.dropAreaView1)
let center = referenceView.convertPoint(sender.view!.center, fromView: sender.view!.superview)
And I am using this piece of code to drop the UIView to the center of another UIView. Drag and drop action work but it never drops on the center.
sender.view!.frame = CGRectMake(dropArea.origin.x , dropArea.origin.y, sender.view!.frame.width * 0.6, sender.view!.frame.height * 0.6)
The whole code is
func draggedView(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
let referenceView = self.view
let dropArea = referenceView.convertRect(self.dropAreaView1.bounds, fromView: self.dropAreaView1)
let center = referenceView.convertPoint(sender.view!.center, fromView: sender.view!.superview)
switch sender.state {
case UIGestureRecognizerState.Began:
originCenter = sender.view!.center
case UIGestureRecognizerState.Ended:
UIView.animateWithDuration(0.3, animations: { () -> Void in
if CGRectContainsPoint(dropArea, center) {
sender.view!.frame = CGRectMake(sender.view!.frame.origin.x, sender.view!.frame.origin.y, sender.view!.frame.width * 0.6, sender.view!.frame.height * 0.6)
}
}