UISlider查看问题

时间:2011-04-27 14:45:58

标签: xcode view makefile slider

我正在尝试创建一个UISlider /滑块,但我不知道它为什么会出现问题。这是片段:

.h =

@interface sliderViewController : UIViewController {

    IBOutlet UISlider *mySlider;

}

@property (nonatomic) float Value;
@property (nonatomic) float minimumValue;
@property (nonatomic) float maximumValue;
@property (nonatomic, getter=isContinuous) BOOL continuous;

@end

.m =

@implementation sliderViewController
@synthesize minimumValue;
@synthesize maximumValue;
@synthesize Value;
@synthesize continuous;
    CGRect rect = CGRectMake(10, 60, 200, 30);
    mySlider = [[UISlider alloc] initWithFrame:rect];
    [mySlider addTarget:self 
                 action:@selector(sliderValueChanges) 
       forControlEvents:UIControlEventValueChanged];
    mySlider.backgroundColor = [UIColor clearColor];
    mySlider.minimumValue = 0.0;
    mySlider.maximumValue = 10.0;
    mySlider.continuous = YES;
    mySlider.value = 5.0;
    [theView addSubview: mySlider];

}

- (void)sliderValueChanges:(id)sender{
    UISlider *slider = sender;
    if (mySlider==slider) {
        printf("Value of slider is %f\n", [mySlider value]);
    }
}
@end

2 个答案:

答案 0 :(得分:1)

UISlider对象定义为IBOutlet意味着您将通过Interface Builder将该ivar连接到界面中的UISlider。是你做的吗?如果没有,那肯定会解释为什么更改UI中的滑块值实际上没有做任何事情。

此外,当您将IBOutlet ivar连接到Interface Builder中的匹配UI元素时,无需在您的代码中创建该对象。它已经通过在您的NIB文件中定义而“创建”。

答案 1 :(得分:0)

问题在于您调用此方法的方式(sliderValueChanges)。请不要这样称它为(sliderValueChanges :)。它工作正常!