import UIKit

class ViewController: UIViewController {
 var onVLine: onVerticalLine!
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
    onVLine = onVerticalLine(frame: CGRectZero)
    self.view.addSubview(onVLine)
    }

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
    if(onVLine != nil){
    self.onVLine.removeFromSuperview()
    }
    }

}



class onVerticalLine: UIView {
let _verticalLine: UIBezierPath = UIBezierPath()


override init(frame: CGRect) {
    super.init(frame: frame)
    print("onlineinited")
    _verticalLine.removeAllPoints()
    self.userInteractionEnabled = false;
    self.backgroundColor = UIColor(white:1,alpha:0)
    self.frame = CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.width)
    self.center = CGPointMake(UIScreen.mainScreen().bounds.width / 2, UIScreen.mainScreen().bounds.height / 2)
    print("vertical",self.frame)
    _verticalLine.lineWidth = 1
    _verticalLine.moveToPoint(CGPointMake(frame.origin.x,0))
    _verticalLine.addLineToPoint(CGPointMake(frame.origin.x, self.frame.origin.y + frame.height))


}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)


}


override func drawRect(rect: CGRect) {

    print("onLinedrawRected")
    UIColor.blueColor().setStroke()
    _verticalLine.stroke()

    }
}

上記のようなプログラムを組んでいます。
linesをViewControllerから消したいのですが、実行しても線が残ったままになってしまいます。

ちなみに、touchMovedにおいて

self.view.addSubview(onVLines)
self.onVLines.removeFromSuperView()

とするとうまく消えてくれます。

実行自体はされているようですがどうも画面に反映されません。
self.view.setNeedsDisplay()をしてみましたがそれも反応無しです。
どうぞよろしくお願い致します。