2012-06-22 80 views
0

我有三个标签接收来自三个UISliders的输出。计算结果并在触摸分段控件时将其放置在第四个标签中。UISlider值更改结果

如果其中一个滑块值发生更改而没有再次触摸分段控件,如何更新结果?

+0

为什么你会不会简单地更新实际结果时滑动任何滑块?在飞行计算!还发布一些你的代码,以便我们可以看看它,也许只是编辑它! – trumpetlicks

回答

1

首先,为滑块改变值添加一个事件:

[mySlider addTarget:self 
      action:@selector(sliderValueChanged:) 
    forControlEvents:UIControlEventValueChanged]; 

你将要为每个滑块做到这一点。

在你sliderValueChanged:功能:

- (void)sliderValueChanged:(id)sender { 
    [self calculateResult]; 
} 

calculateResult你可以做你的计算和设置您的结果框。

如果你需要确保你的分段控制在一些国家第一,只需添加一个if子句sliderValueChanged:

- (void)sliderValueChanged:(id)sender { 
    if ([mySegmentedControl selectedSegmentIndex] == 1) { 
     [self calculateResult]; 
    } 
} 
+0

谢谢!我想出了一些根据你的建议起作用的东西。 – user1452710

0

我想出了利用mopsled's answer奏效:

if (UIControlEventValueChanged && mySeg.selectedSegmentIndex == 0) { 
    float floatResult = [f3.text floatValue]-[f2.text floatValue]; 
    float coldFactor = [fcold.text floatValue]*floatResult; 
    float result = [f1.text floatValue]+coldFactor; 

    NSString *tpResult = [[NSString alloc] initWithFormat:@"%.0f",result]; 
    f4Result.text = tpResult;    
}