Ios 快速按钮和改变色彩

Ios 快速按钮和改变色彩,ios,swift,uibutton,Ios,Swift,Uibutton,我有一个恼人的问题。我有一个带有4个按钮的分级控制 它们在一个循环中都是这样初始化的: var button: UIButton? = nil; //.. button = UIButton(type: UIButtonType.System); //.. imageDefault.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); mageHighlight.imageWithRenderingMo

我有一个恼人的问题。我有一个带有4个按钮的分级控制

它们在一个循环中都是这样初始化的:

  var button: UIButton? = nil;
  //.. 
  button = UIButton(type: UIButtonType.System);
  //..
  imageDefault.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
  mageHighlight.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
  imageProgress.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
  //..
  button!.setImage(imageDefault.Content!, forState: .Normal)
  button!.setImage(imageHighlight.Content!, forState: .Highlighted)
  button!.setImage(imageProgress.Content!, forState: .Selected)
当它点击其中一个按钮时,乐趣就开始了。如果单击了第二个,则第一个和第二个的颜色应相同,而其余的颜色应与标准颜色相同。有3个按钮,概念相同,但颜色不同

当发生单击时,我有如下代码:

  func updateButtonSelectionStates() {
    let idx: Int = self.tag;
    var rating: Int = 3; // whatever
    for (index, button) in ratingButtons.enumerate() {
      button.selected = (index+1) <= Int(rating);
      var color: UIColor = UIColor.blackColor();
      if (index+1) <= Int(rating) {
        switch (rating % 4) {
          case 0: color = UIColor.blueColor();
          case 3: color = UIColor.greenColor();
          case 2: color = UIColor.yellowColor();
          case 1: color = UIColor.redColor();
          default: msNoOp();
        }
      }
      if (button.imageView != nil) {
        button.imageView!.tintColor = color;
      }      
    }
func updateButtonSelectionStates(){
设idx:Int=self.tag;
var评级:Int=3;//随便什么
对于ratingButtons.enumerate()中的(索引,按钮){
button.selected=(索引+1)