I used the code below to create a label every time a button is pressed, then have the label move to a specific location, and then have it delete.
My problem is it can't create multiple labels because it's deleting the label way too soon, because it removes everything named label.
How can I fix this so it creates multiple labels that only get deleted when a label individually completes its animation?
A solution I've thought of, but can't figure out is where you have it create a label with a different name such as label1, label2, and so on, so that way it can delete a specific label when it completes it's animation, instead of deleting all of them.
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
func createLabel() {
    // Find the button's width and height
    let labelWidth = label.frame.width
    // Find the width and height of the enclosing view
    let viewWidth = self.view.frame.width
    // Compute width and height of the area to contain the button's center
    let xwidth = viewWidth - labelWidth
    // Generate a random x and y offset
    let xoffset = CGFloat(arc4random_uniform(UInt32(xwidth)))
    // Offset the button's center by the random offsets.
    label.center.x = xoffset + labelWidth / 2
    label.center.y = 300
    label.font = UIFont(name:"Riffic Free", size: 18.0)
    label.textColor = UIColor.white
    label.textAlignment = .center
    label.text = "+1"
    self.view.addSubview(label)
}
func clearLabel() {
    UIView.animate(withDuration: 0.9, delay: 0.4, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.0, options: .curveLinear, animations: {
        self.label.center = CGPoint(x: 265, y: 75 )
    }, completion: { (finished: Bool) in
        self.label.removeFromSuperview()
    })
}
@IBAction func clicked(_ sender: Any) {
    createLabel()
    clearLabel()
}
 
    
