I want to create circle after long pressure gesture and make it move with pan gesture while still pressing finger on screen. When finger is moved from screen, circle should be removed from it. Circle creation with long tap gesture works fine, just it doesn't move. Code is below:
@IBAction func spaceLongPressed(_ guesture: UILongPressGestureRecognizer) {
let location = guesture.location(in: space)
var panGesture = UIPanGestureRecognizer()
circleView = UIView(frame: CGRect(x: location.x - space.bounds.height/4, y: location.y - space.bounds.height/4, width: space.bounds.height/2, height: space.bounds.height/2))
if guesture.state == .began {
circleView.backgroundColor = UIColor.red
circleView.isUserInteractionEnabled = true
circleView.tag = 100
circleView.layer.cornerRadius = circleView.bounds.height/2
space.addSubview(circleView)
panGesture = UIPanGestureRecognizer(target: space, action: #selector(didPan(sender:)))
space.addGestureRecognizer(panGesture)
}
if guesture.state == .ended {
if let viewWithTag = self.view.viewWithTag(100) {
viewWithTag.removeFromSuperview()
}
}
}
@objc func didPan(sender: UIPanGestureRecognizer) {
if sender.state == .began {
let translation = sender.translation(in: sender.view)
let changeX = (sender.view?.center.x)! + translation.x
let changeY = (sender.view?.center.y)! + translation.y
sender.view?.center = CGPoint(x: changeX, y: changeY)
sender.setTranslation(CGPoint.zero, in: sender.view)
}
}
Object "space" is of UIButton type - I want to create circle in button.