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

Posted

技术标签:

【中文标题】iOS 使用步进器控制滑块值和文本标签值【英文标题】:iOS controlling a slider value and text label value with a stepper 【发布时间】:2013-05-06 03:44:37 【问题描述】:

我已经有一个控制文本标签输出的滑块。

-(IBAction)mySlider:(UISlider *)sender

    _myTextLabel.text = [NSString stringWithFormat:@"%i", (int) sender.value];

但是,我还希望步进器能够改变滑块的位置。因此,如果滑块已设置为 50,并且文本标签显示为 50,我希望步进器递增到 51、52、53 等。有人知道执行此操作的代码吗?谢谢!

【问题讨论】:

你有什么问题? 所以如果我没看错的话,你非常希望 UISlider 更新标签,然后步进器更新滑块? 是的,没错,我的问题是执行此操作的代码是什么...基本上,如果用户尝试选择特定数字,他们可以使用滑块作为粗调,然后使用增量器得到确切的数字 【参考方案1】:

您需要保留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];

【讨论】:

感谢这段代码,但我有一个快速的新手问题:如何为 UISlider 提供参考?每次我为滑块创建方法时,我都无法在 大括号之外引用它们,而且我不知道如何指向它们 你所要做的就是在你的 .h 文件中,做 @property (nonatomic, retain) UISlider *;在结尾和 之间,然后在你的 .m 文件中,在实现 下键入 synthesize ;这将创建要使用的 getter/setter 函数,以便您可以在 之外使用它们。实现并在它们前面合成两个@ 只需从 IB 连接控件,给控件一个属性,用 IBOutlet 连接它们。以上stepper、min、max、step的设置可以从IB自己设置。 请注意,如果您想让滑块和步进器保持同步,则每当其中一个发生变化时,您都需要更新相反的一个。 (即当滑块改变时,更新步进器,反之亦然。) @jake9115 我已经完全更新了答案。请看。

以上是关于iOS 使用步进器控制滑块值和文本标签值的主要内容,如果未能解决你的问题,请参考以下文章

如何以 nsuserdefaults 或任何其他有效方式保存滑块值和标签值?

如何固定滑块值和返回值-奇异

IOS - 当滑块值改变时设置 UILabel Swift

如何使用按钮将 4 个滑块值相加?

如何使用按钮将4个滑块值一起添加?

在更改时显示kivy滑块值[关闭]