在Objective C中为UISlider创建没有Storyboard的Outlet和Action

时间:2015-03-11 10:02:47

标签: objective-c iphone storyboard uislider

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

创建滑块:

-(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
}

答案 2 :(得分:0)

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

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

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