iOS使用步进器控制滑块值和文本标签值

问题描述:

我已经有一个滑块来控制文本标签的输出。iOS使用步进器控制滑块值和文本标签值

-(IBAction)mySlider:(UISlider *)sender 
{ 
    _myTextLabel.text = [NSString stringWithFormat:@"%i", (int) sender.value]; 
} 

但是,我也想要一个步进器能够改变滑块的位置。所以,如果滑块已设置为50,并且文本标签显示为50,我希望步进器增加到51,52,53等。有没有人知道代码要做到这一点?谢谢!

+0

你的问题是什么? – rmaddy 2013-05-06 03:49:08

+0

所以,如果我正确阅读这个,你几乎想要UISlider更新标签,然后步进更新滑块? – user2277872 2013-05-06 03:50:54

+0

是的,这是正确的,我的问题是这样做的代码是什么......基本上,如果用户试图选择一个特定的数字,他们可以使用滑块作为粗调,然后使用增量器得到确切的数字 – jake9115 2013-05-06 03:51:50

您需要保留参考UISlider。使用valueChanged事件为UIStepper制作处理程序。两个步进和滑块做

需要某些设置

设置两个步进和滑块分别作为0和100的最小值和最大值。将步进器的步长设置为1.设置两个步进器和滑动器的默认值相同。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.slider.minimumValue = 0; 
    self.slider.maximumValue = 100; 

    self.stepper.minimumValue = 0; 
    self.stepper.maximumValue = 100; 
    self.stepper.stepValue = 1; 

    self.slider.value = 10; 
    self.stepper.value = 10; 

} 

- (IBAction)stepperValueChanged:(UIStepper *)sender { 

    [self.slider setValue:sender.value]; 

    self.myTextLabel.text = [@((int)sender.value) stringValue]; 

} 

- (IBAction)sliderValueChanged:(UISlider *)sender { 

    [self.stepper setValue:sender.value]; 

    self.myTextLabel.text = [@((int)sender.value) stringValue]; 
} 
+0

感谢您的代码,但我有一个快速的newb问题:我如何为UISlider做参考?每次我为滑块创建一个方法时,我都无法在他们的{}括号之外引用它们,但我不知道如何指向它们。 – jake9115 2013-05-06 03:59:36

+0

您只需在.h文件中执行@property (非原子,保留)UISlider * ;在结尾和}之间,然后在你的.m文件中,正确执行类型合成;这将创建getter/setter函数来使用,以便您可以在{}之外使用它们。在它们前面执行和合成两个@ – user2277872 2013-05-06 04:03:10

+0

只需连接来自IB的控件,将控件的属性与IBOutlet连接即可。上述步进,分,最大和步进的设置可以从IB本身进行设置。 – Anupdas 2013-05-06 04:03:11