 			UIView.commitAnimations()
 		}
 	}
+	
+	override open var isEnabled: Bool {
+		didSet {
+			var clr = UIColor.clear
+			var txtColor = UIColor.clear
+			if !isEnabled, let color = disabledBackgroundColor {
+				clr = color
+				txtColor = self.titleColor(for: .disabled)!
+			}else if isEnabled, let color = normalBackgroundColor {
+				clr = color
+				txtColor = self.titleColor(for: .normal)!
+			}
+
+			UIView.beginAnimations(nil, context: nil)
+			self.backgroundColor = clr
+			self.imageView!.tintColor = txtColor
+			UIView.commitAnimations()
+		}
+	}
 }

		}
		else if state == .selected {
			selectedBackgroundColor = color
		}
		
	}

	private var normalBackgroundColor : UIColor?
	private var selectedBackgroundColor : UIColor?
	private var highlightedBackgroundColor : UIColor?
	private var disabledBackgroundColor : UIColor?

	/**
	 This method allows you to set the background color during a certain state.
