2015-12-18 40 views
0

我希望有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是紅色背景。

我的問題在於,應用程序將只使用綠色和黃色的顏色,完全忽略紅色。我該如何激活紅色?

回答

3

問題是你的最後一條if語句。

你的紅色(< = 3)也將小於6,所以如果從未進入第二個,那麼所有紅色的都將被捕獲。

要糾正它,您可以簡單地將其他兩個括號括起來。先檢查紅色,然後檢查黃色。

還是要保持一致性,將其更改爲:

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

它總是一個好主意,檢查同一不等號來避免這種錯誤。

+0

這是有道理的。謝謝! –