 <p>For every touch, you just need create and add(you missed this step) square in touch begin (or touch end), don't do in touch move.</p> <pre><code> override func touchesBegan(touches: Set&lt;UITouch&gt;, withEvent event: UIEvent?) { let touch = touches.first location = touch!.locationInView(self.view) person.center = location for _ in touches { let mySquare: UIView = UIView(frame: CGRect(x: 0,y: 0,width: 20,height: 20)) mySquare.backgroundColor = UIColor.cyanColor() mySquare.center = randomPoint view.addSubview(mySquare) // add square to the view } } </code></pre>