如果否则不允许颜色变化?

If Else not allowing color change?

我想要 3 If/Else If 语句根据接收到的值改变背景颜色。到目前为止,我的代码是:

/////Activity Response Selection/////
@IBAction func ActivityAction(sender: AnyObject) {

    if(ActivitySeg.selectedSegmentIndex == 0)
    {
    ActivityVal.text = "Absent"
    ActivityNum.text = "0"
    }
    else if(ActivitySeg.selectedSegmentIndex == 1)
    {
    ActivityVal.text = "Arms/Legs Flexed"
    ActivityNum.text = "1"
    }
    else if(ActivitySeg.selectedSegmentIndex == 2)
    {
    ActivityVal.text = "Active Movement"
    ActivityNum.text = "2"
    }


let ActivityIn = Double(ActivityNum.text!)
let PulseIn = Double(PulseNum.text!)
let GrimIn = Double(GrimNum.text!)
let AppIn = Double(AppNum.text!)
let RespIn = Double(RespNum.text!)

let product = ActivityIn! + PulseIn! + GrimIn! + AppIn! + RespIn!

TotalVal.text = "\(product)"
TotalVal.text = NSString(format: "APGAR Score: %2.0f", product)as String


if product >= 7.0 {
    TotalVal.backgroundColor = UIColor.greenColor()
}
else if product <= 6.0{
    TotalVal.backgroundColor = UIColor.yellowColor()
}
else if product <= 3.0 {
    TotalVal.backgroundColor = UIColor.redColor()
}

}

凡我有任何价值 greater/equal 到 7 为免费。 Equal/Less比6是黄底。 Equal/Less比3是红色背景。

我的问题是应用程序只会使用绿色和黄色,完全忽略红色。如何激活红色?

问题是你最后一个 else if 语句。

你的红色 (<= 3) 也将小于 6,所以所有红色的都会被第一个 else if 捕获,永远不会进入第二个。

要更正它,您可以简单地交换两个 else if 括号。先检查红色,再检查黄色。

或者为了保持一致性,将其更改为:

if product >= 7.0 {
    TotalVal.backgroundColor = UIColor.greenColor()
} else if product > 3.0 {
    TotalVal.backgroundColor = UIColor.yellowColor()
} else {
    TotalVal.backgroundColor = UIColor.redColor()
}

检查相同的不等号以避免此类错误总是一个好主意。