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

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

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

【问题讨论】:

    标签: objective-c iphone storyboard uislider


    【解决方案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
        }
        

        【讨论】:

          猜你喜欢
          • 2020-02-12
          • 2013-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多