 
     //MARK: ControlState
     
+    /**
+     A Boolean value indicating whether the control draws a highlight.
+     
+     Method updated the background color depending on if the button is highlighted or not.
+     */
     override var highlighted: Bool
     {
         didSet


    //MARK: ButtonActions
    
    func buttonTouchUpInside(sender: UIButton)
    {
        sender.backgroundColor = normalBackgroundColor()
    }
    
    func buttonTouchUpOutside(sender: UIButton)
    {
        sender.backgroundColor = normalBackgroundColor()
    }
    
    func buttonTouchDown(sender: UIButton)
    {
        sender.backgroundColor = highlightedBackgroundColor()
    }
    
    func buttonTouchCancel(sender: UIButton)
    {
        sender.backgroundColor = normalBackgroundColor()

    //MARK: Getters
    
    /// The color for a normal state.
    ///
    /// returns: The normal background color
    public func normalBackgroundColor() -> UIColor?
    {
        return objc_getAssociatedObject(self, &BackgroundColorNormal) as? UIColor
    }
    
    /// The color for a highlighted state.
    ///
    /// returns: The highlighted background color.
    public func highlightedBackgroundColor() -> UIColor?
    {
        return objc_getAssociatedObject(self, &BackgroundColorHighlighted) as? UIColor
