       } else {
         self.titleLabel.text = self.titleForState(self.currentState)
       }
+      
+      if let titleColor = self.titleColorForState(UIControlState.Selected) {
+        self.titleLabel.textColor = titleColor
+      } else {
+        if let titleColor = self.titleColorForState(self.currentState) {
+          self.titleLabel.textColor = titleColor
+        } else {
+          self.titleLabel.textColor = UIColor.blackColor()
+        }
+      }
     } else {
       self.imageView.image = self.imageForState(self.currentState)
       self.titleLabel.text = self.titleForState(self.currentState)
+      if let titleColor = self.titleColorForState(self.currentState) {
+        self.titleLabel.textColor = titleColor
+      } else {
+        self.titleLabel.textColor = UIColor.blackColor()
+      }
     }
     
     // Set overlay alpha.

      }
    }
    self.titlesForState.append(titleForState)
  }
  
  func addTarget(target: AnyObject?, action: Selector,

  
  weak var target: AnyObject?
  var action: Selector!
  var event: UIControlEvents!
  
  func isEqual(target: Target?) -> Bool {
    
