アナログ時計を作ろうとしています。長針短針秒針を生成し現在時刻を元にその角度を調整するところまではできたのですが、毎秒ごとに更新されず止まったままの時計になってしまっています。どうしたら本来の時計らしく毎秒毎秒秒針が動いて正確な時間を知らせてくれるようになるでしょうか。
以下親クラスのコードです。

import UIKit

class ViewController: UIViewController {

    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.
    }
}

以下サブクラスのコードです。

import UIKit

class Line: UIView {
    var sHand = UIBezierPath()
    var mHand = UIBezierPath()
    var hHand = UIBezierPath()


    func setTheClock()
    {
        let cal = Calendar(identifier: .gregorian)
        let now = Date()

        let ss = Double(cal.component(.second, from: now))
        let mm = Double(cal.component(.minute, from: now))
        let hh = (Double(cal.component(.hour, from: now)) + mm/60).truncatingRemainder(dividingBy: 12)

        let sRad = .pi*ss/30
        let mRad = .pi*mm/30
        let hRad = .pi*hh/6


        sHand.move(to: CGPoint(x: 100, y: 100))
        sHand.addLine(to: CGPoint(x: 100 + 100*sin(sRad), y: 100 - 100*cos(sRad)))
        UIColor.yellow.setStroke()
        sHand.lineWidth = 0.5
        sHand.stroke()

        mHand.move(to: CGPoint(x: 100, y: 100))
        mHand.addLine(to: CGPoint(x: 100 + 80*sin(mRad), y: 100 - 80*cos(mRad)))
        UIColor.blue.setStroke()
        mHand.lineWidth = 1
        mHand.stroke()

        hHand.move(to: CGPoint(x: 100, y: 100))
        hHand.addLine(to: CGPoint(x: 100 + 60*sin(hRad), y: 100 - 60*cos(hRad)))
        UIColor.red.setStroke()
        hHand.lineWidth = 2
        hHand.stroke()
    }



    override func draw(_ rect: CGRect)
    {
        setTheClock()
        _ = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(setTheClock), userInfo: nil, repeats: true)
    }

}