gpt4 book ai didi

ios - UISLider 以正确的方式改变 UILabel 的值(value)

转载 作者:行者123 更新时间:2023-11-28 18:37:49 27 4
gpt4 key购买 nike

所以我有这段代码可以根据 UISlider 的值更改 UILabel 的值:

- (void)slider03Changed:(UISlider *)slider{

int value = 10;

if (slider.value >= 0.1){
value = 20;
}
if (slider.value >= 0.2){
value = 30;
}
if (slider.value >= 0.3){
value = 40;
}
if (slider.value >= 0.4){
value = 50;
}
if (slider.value >= 0.5){
value = 60;
}
if (slider.value >= 0.6){
value = 70;
}
if (slider.value >= 0.7){
value = 80;
}
if (slider.value >= 0.8){
value = 90;
}
if (slider.value >= 0.9){
value = 100;
}

lbl01.text = [NSString stringWithFormat:@"%u hours", value];
}

一切正常,但我担心这里的代码质量。

这段代码很长。有没有办法以某种方式优化它?谢谢!

最佳答案

使用for循环:

- (void)slider03Changed:(UISlider *)slider{

int value = 10;

for (float i = 0.9; i > 0; i-=0.1)
{
if (slider.value >= i)
{
value = (i*100)+10;
break;
}
}

lbl01.text = [NSString stringWithFormat:@"%u hours", value];
}

使用的公式是:

(i*100)+10

例如:

(0.6*100)+10 = 70
(0.7*100)+10 = 80
and so on...

更新:

您可以通过首先检查这种情况 slider.value >= 0.9 来进一步优化它。

为什么?

因为如果它满足具有更高值(value)的情况,那么您的 if 语句的其余部分将无用。在我编写的代码中,只要满足 slider.value 值最大的条件,我们就会设置 value 变量的值并跳出循环。这将防止您的代码评估不必要的情况。

例如:

假设您的slider.value = 0.95

这就是您的代码中会发生的情况:

(slider.value >= 0.1) ----> true ----> then ---> set value = 20
(slider.value >= 0.2) ----> true ----> then ---> set value = 30
(slider.value >= 0.3) ----> true ----> then ---> set value = 40
(slider.value >= 0.4) ----> true ----> then ---> set value = 50
(slider.value >= 0.5) ----> true ----> then ---> set value = 60
(slider.value >= 0.6) ----> true ----> then ---> set value = 70
(slider.value >= 0.7) ----> true ----> then ---> set value = 80
(slider.value >= 0.8) ----> true ----> then ---> set value = 90
(slider.value >= 0.9) ----> true ----> then ---> set value = 100

用我的代码:

(slider.value >= 0.9) ----> true ----> then ---> set value = 100 and break out of the loop

如您所见,使用我的代码,它仅评估 1 个案例。

关于ios - UISLider 以正确的方式改变 UILabel 的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787975/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com