         hand.frame = CGRectMake(centerInParent.x-(thickness/2), centerInParent.y - handLength + offset, thickness, handLength)
     }
     
-    private func setTime(#h: Int, m: Int, s: Int) {
-        
+    private func updateHands(animated: Bool = false) {
         // Put everything in seconds to have ratios
-        let hoursInSeconds = (h%12)*3600
-        let minutesInSeconds = (m%60)*60
-        let secondsInSeconds = (s%60)
+        let hoursInSeconds = (hours%12)*3600
+        let minutesInSeconds = (minutes%60)*60
+        let secondsInSeconds = (seconds%60)
         
         let hoursRatio = CGFloat(hoursInSeconds + minutesInSeconds + secondsInSeconds) / 43200.0
         let minutesRatio = CGFloat(minutesInSeconds + secondsInSeconds) / 3600.0
         let secondsRatio = CGFloat(secondsInSeconds) / 60.0
         
-        handSeconds.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*secondsRatio)
-        handMinutes.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*minutesRatio)
-        handHours.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*hoursRatio)
+        if (animated) {
+            UIView.animateWithDuration(0.3) {
+                self.handSeconds.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*secondsRatio)
+                self.handMinutes.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*minutesRatio)
+                self.handHours.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*hoursRatio)
+            }
+        } else {
+            handSeconds.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*secondsRatio)
+            handMinutes.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*minutesRatio)
+            handHours.transform = CGAffineTransformMakeRotation(CGFloat(2*M_PI)*hoursRatio)
+        }
     }
-
 }

@IBDesignable
public class EZClockView: UIView {
    
    private var handHours: UIView = UIView()
    private var faceView: UIView = UIView()
    private var handMinutes: UIView = UIView()
    private var handSeconds: UIView = UIView()
    
    @IBInspectable public var faceBackgroundColor: UIColor = UIColor.whiteColor()
    @IBInspectable public var faceBorderColor: UIColor = UIColor.blackColor()
    @IBInspectable public var faceBorderWidth: CGFloat = 2.0
    
    @IBInspectable public var hours: Int = 0 { didSet { setTime(h: hours, m: minutes, s: seconds) } }
    @IBInspectable public var minutes: Int = 0 { didSet { setTime(h: hours, m: minutes, s: seconds) } }
    @IBInspectable public var seconds: Int = 0 { didSet { setTime(h: hours, m: minutes, s: seconds) } }
    
    @IBInspectable public var hoursColor: UIColor = UIColor.blackColor()
    @IBInspectable public var hoursLength: CGFloat = 0.5
    @IBInspectable public var hoursThickness: CGFloat = 4
    @IBInspectable public var hoursOffset: CGFloat = 2
    
    @IBInspectable public var minutesColor: UIColor = UIColor.blackColor()
    @IBInspectable public var minutesLength: CGFloat = 0.7
    @IBInspectable public var minutesThickness: CGFloat = 2
    @IBInspectable public var minutesOffset: CGFloat = 2
    
    @IBInspectable public var secondsColor: UIColor = UIColor.redColor()
    @IBInspectable public var secondsLength: CGFloat = 0.8
    @IBInspectable public var secondsThickness: CGFloat = 1
    @IBInspectable public var secondsOffset: CGFloat = 2
    
    private var sideLength: CGFloat = 0
    
    public override func layoutSubviews() {
        super.layoutSubviews()

        sideLength = min(self.bounds.size.width, self.bounds.size.height)
        
        // Reset all transforms
        setupHand(handHours, lengthRatio: hoursLength, thickness: hoursThickness, offset: hoursOffset)
        setupHand(handMinutes, lengthRatio: minutesLength, thickness: minutesThickness, offset: minutesOffset)
        setupHand(handSeconds, lengthRatio: secondsLength, thickness: secondsThickness, offset: secondsOffset)
        
        handHours.backgroundColor = hoursColor
        handMinutes.backgroundColor = minutesColor
