         })
     }
     
-    // MARK: override tracking
+    // MARK: - override tracking
     
     override public func beginTrackingWithTouch(touch: UITouch, withEvent event: UIEvent?) -> Bool {
         self.setNeedsDisplay()


@IBDesignable
public class SUCheckButton: UIControl {
    static let DefaultHeight: CGFloat = 30.0
    
    @IBInspectable var checked: Bool = false {
        didSet { self.setNeedsDisplay() }
    }
    var isChecked: Bool {
        get { return checked }
    }
    
    @IBInspectable var checkStrokeWidth: CGFloat = 1.5 {
        didSet { checkStrokeWidth = max(0.0, checkStrokeWidth) }
    }
    
    @IBInspectable var borderWidth: CGFloat = 1.0 {
        didSet { borderWidth = max(0.0, borderWidth) }
    }

    @IBInspectable var checkedColor: UIColor? = UIColor.whiteColor()
    @IBInspectable var checkedFillColor: UIColor? = UIColor(red: 0.078, green: 0.435, blue: 0.875, alpha: 1.0)
    @IBInspectable var checkedBorderColor: UIColor? = UIColor.whiteColor()

    @IBInspectable var uncheckedColor: UIColor? = UIColor(white: 0.8, alpha: 1.0)
    @IBInspectable var uncheckedFillColor: UIColor? = UIColor(white: 1.0, alpha: 0.6)
    @IBInspectable var uncheckedBorderColor: UIColor? = UIColor.whiteColor()
    
    @IBInspectable var shadowColor: UIColor? = UIColor.blackColor()
    
    @IBInspectable var animationEnabled : Bool = true
    @IBInspectable var animationScale: CGFloat = 1.05
    
    @IBInspectable var highlightColor: UIColor? = UIColor(white: 0.5, alpha: 0.3)
    
    typealias DidPressHandler = ((checked: Bool) -> Void)
    var didPressHandler: DidPressHandler?
    
    convenience init() {
        self.init(frame: CGRect(x: 0.0, y: 0.0, width: self.dynamicType.DefaultHeight, height: self.dynamicType.DefaultHeight))
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

        ovalPath.fill()
    }
    
    // MARK: - scale animation
    
    private func scaleAnimation() {
        UIView.animateWithDuration(0.15, delay: 0.0, options: .BeginFromCurrentState, animations: { [weak self] in
            let scale = self?.animationScale ?? 1.0
