Swift按钮和改变色调的颜色

时间:2016-09-22 01:53:35

标签: ios swift uibutton

我有一个令人抓狂的问题。我有一个带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;
      }      
    }

问题是 - 任何设置为“已选择”的按钮都会消失 - 不会显示图形。

如果我明确设置“selected”= false,它适用于大多数按钮,但是....此解决方案不适用于单击的实际按钮。它仍然显得隐藏/图形不可见。

无论出现什么解决方案,它都应该在iOS7上运行......

0 个答案:

没有答案