Platform Game: Choppy SpriteNode Movement when Holding the Movement Button

I am trying to make a simple platform game using swift for iOS.

I encounter a problem in making the playerNode (Type: SKSpriteNode) moving smoothly to the left/right while holding down the arrow key on the screen. These are the related codes that attempted to perform the action:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { handleTouch(touches) }

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { handleTouch(touches) }

func handleTouch(touches: Set<UITouch>) { let touch = touches.first if leftButton!.containsPoint(touch!.locationInNode(cam)) { playerNode!.position.x -= 50
I tried using SKAction with the similar manner as well. However, the mvoement is still choppy.
note: leftButton is a child node of the cameraNode.

let me know if you need further info.