在 Objective C 中为 UISlider 创建没有情节提要的 Outlet 和 Action

Posted

技术标签:

【中文标题】在 Objective C 中为 UISlider 创建没有情节提要的 Outlet 和 Action【英文标题】:Create Outlet and Action without Storyboard for UISlider in Objective C 【发布时间】:2015-03-11 10:02:46 【问题描述】:

我在我的主文件中创建了一个 UISlider 作为属性,我想在他的 valueDidChange 时执行一些操作。

我的 UISlider 不在 Xib 文件中,如何在没有 CTRL + 拖动的情况下创建 valueDidChange 操作?

【问题讨论】:

【参考方案1】:

您只需在视图控制器中添加以下代码行。

[yourslidername addTarget:self action:@selector(sliderValueChangedMethodcall:) forControlEvents:UIControlEventValueChanged];

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

【讨论】:

【参考方案2】:

您调用- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents 并指定UIControlEventValueChanged 作为控制事件。

【讨论】:

【参考方案3】:

创建滑块:

-(IBAction)mySlider
 
    CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    slider.value = 25.0;
    [self.view addSubview:slider];

并给你的滑块一个动作:

-(void)sliderAction:(id)sender

    UISlider *slider = (UISlider*)sender;
    float value = slider.value;
    //-- Do further actions

【讨论】:

以上是关于在 Objective C 中为 UISlider 创建没有情节提要的 Outlet 和 Action的主要内容,如果未能解决你的问题,请参考以下文章

Objective C / iPhone - 如何将 UISlider 绑定到代码

Objective C UISlider 仅更改最小轨迹图像

如何在 Objective-C 中的 UISlider 上添加标记? [关闭]

Objective-c,AVPlayer 中的 UISlider 无法正常工作,在洗涤器之后

如何在 Swift 中为 UISlider 的值添加百分号

在 Swift 中为 Objective C 函数提供 NSMutableArray 类型