我想选择一个数字范围来更改图像视图的颜色背景。
我用我的iPhone麦克风取hz的值,这个值是转换为字符串,值不固定。
我想从18000.000f到1899.999f中选择一个数字。
这是我的代码
if (maxHZ = 18000.000f) {
Image.backgroundColor = [UIColor blackColor];
} else if(maxHZ >= 17999.999f ) {
Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor yellowColor];
}
答案 0 :(得分:5)
我已将您的代码更正为正确检查,因为您正在使用else if
,它不会进入最后一个语句,因为如果最后一个为真,则第二个也是如此。
if (maxHZ == 18000.000f) {
Image.backgroundColor = [UIColor blackColor];
} else if(maxHZ >= 17999.999f && maxHZ < 18999.999f ) {
Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor yellowColor];
}
正如评论中所说,你应该删除第一个声明。它有0.000000001%的机会进入。
if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor redColor];
} else {
Image.backgroundColor = [UIColor yellowColor];
}
或如果他想要黑色,如果它不在那两个范围的以太中:
if(maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor redColor];
} else if(maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else {
Image.backgroundColor = [UIColor blackColor];
}
答案 1 :(得分:1)
逻辑上,我想,你可能会寻找这样的东西,我猜:
if (maxHZ >= 18999.999f) {
Image.backgroundColor = [UIColor yellowColor];
} else if (maxHZ == 18000.000f) {
Image.backgroundColor = [UIColor blackColor];
} else if (maxHZ >= 17999.999f) {
Image.backgroundColor = [UIColor redColor];
} else {
/* do something here, otherwise you would be left without explicit color */
}
(我个人不知道你会看到多少次黑色,因为18000.0
和17999.999
之间的间隔是千分之一,你的输入可能没那么准确微不足道的差异。)