当 UISlider 值改变时会调用啥?
Posted
技术标签:
【中文标题】当 UISlider 值改变时会调用啥?【英文标题】:What gets called when a UISlider value changes?当 UISlider 值改变时会调用什么? 【发布时间】:2010-11-04 01:26:58 【问题描述】:当UISlider
的value
发生变化时,是否会调用方法?我希望能够根据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
时的值更改事件,那么请确保还设置了slider
的continuous 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 值改变时会调用啥?的主要内容,如果未能解决你的问题,请参考以下文章