如果不允许换色?

时间:2015-12-18 03:12:08

标签: ios iphone swift if-statement uilabel

我希望有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()
}

}

我有任何大于/等于7的值是免费的。 等于/小于6是黄色背景。 等于/小于3是红色背景。

我的问题在于应用程序只会使用绿色和黄色,完全忽略红色。我怎样才能激活红色?

1 个答案:

答案 0 :(得分:3)

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

你的红色(&lt; = 3)也会小于6,所以所有红色的红色都将在第一个被捕获,如果从未进入第二个。

要纠正它,你可以简单地交换两个其他的括号。先检查红色,然后再检查黄色。

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

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

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