我正在尝试制作一个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发布于 2011-04-27 23:33:07
将UISlider对象定义为IBOutlet意味着您将通过interface Builder将该ivar连接到接口中的UISlider。是你干的吗?如果不是,这就解释了为什么在UI中更改滑块值实际上不会做任何事情。
此外,当您在接口生成器中将IBOutlet ivar连接到匹配的UI元素时,则不需要在您的代码中创建对象。它已经通过在您的NIB文件中定义而被“创建”了。
发布于 2012-07-30 00:17:51
问题出在调用此方法(sliderValueChanges)的方式上。而不是这样命名,请这样命名(sliderValueChanges:).It工作很好!
https://stackoverflow.com/questions/5805979
复制相似问题