当 UISlider 值改变时会调用啥?

Posted

技术标签:

【中文标题】当 UISlider 值改变时会调用啥?【英文标题】:What gets called when a UISlider value changes?当 UISlider 值改变时会调用什么? 【发布时间】:2010-11-04 01:26:58 【问题描述】:

UISlidervalue 发生变化时,是否会调用方法?我希望能够根据UISliders 值更新一个值,但仅限于它发生变化时。

【问题讨论】:

【参考方案1】:

在 IB 中,您可以将 IBAction 连接到 Value Changed event 或在代码中为 UIControlEventValueChanged 添加目标/操作。例如:

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

- (IBAction)sliderValueChanged:(UISlider *)sender 
    NSLog(@"slider value = %f", sender.value);

请注意,如果您希望用户是sliding 时的值更改事件,那么请确保还设置了slidercontinuous property。另一方面,如果您不希望事件触发,因为用户是 sliding 并且仅当他们完成滑动时,请将 Continuous 设置为 NO(或在 IB 中取消选中)。

【讨论】:

【参考方案2】:

对于 Swift 3

//There is your slider
@IBOutlet weak var mSlider: UISlider!

//add a target on your slider on your viewDidLoad for example
self.mSlider.addTarget(self, action: #selector(MyClass.onLuminosityChange), for: UIControlEvents.valueChanged)

//callback called when value change
func onLuminosityChange()
    let value = self.mSlider.value

【讨论】:

【参考方案3】:
ViewController.h

@property (strong, nonatomic) IBOutlet UIProgressView *prgs;

- (IBAction)slider:(id)sender;

@property (strong, nonatomic) IBOutlet UISlider *slider1;

@property (strong, nonatomic) IBOutlet UILabel *lbl;


ViewController.m

- (IBAction)slider:(id)sender 


    self.prgs.progress=self.slider1.value;

    self.lbl.text = [NSString stringWithFormat:@"%f", 
self.slider1.value];


【讨论】:

您好 Acharya,欢迎来到 SO 并感谢您的回答。您能否编辑您的答案以描述这如何解决 OP 的问题?此处不鼓励仅使用代码的答案。谢谢!

以上是关于当 UISlider 值改变时会调用啥?的主要内容,如果未能解决你的问题,请参考以下文章

uislider:打开预览图片,如杂志应用

当一个线程 execve() 一个文件时会发生啥?

当我们双击 uitextview 时会调用啥方法

UISlider 平滑地改变值

当调用winsock 中的recv 函数并且没有收到所有数据时会发生啥?

当用户关闭浏览器等待长时间运行的 Web 服务调用时会发生啥?