[heightSlider addTarget:self操作:@selector(updateHeightLabel:)forControlEvents:UIControlEventValueChanged];我在heightSlider
文件中声明了.h
,如下所示:@property (retain, nonatomic) UISlider *heightSlider;
,它是@synthesize heightSlider;
在.m
文件中。
在IB
中,我将其连接到updateHeightLabel
上的valueChanged
。我还将maximumValue
中的默认minimumValue
和36.0
设置为84.0
和IB
。unitType
的默认值为0
。因此,应相应地设置heightSlider.maximumValue
,从而将NSLog
从91.0
更改为213.0
,但不进行更改。它是NSLogs
与IB
默认值的更改。
同样,[heightSlider addTarget:self action:@selector(updateHeightLabel:)forControlEvents:UIControlEventValueChanged];
似乎也不起作用,并且由于IB
中的连接而仅在调用该函数。
我做错了什么基本的东西吗?
- (void)viewDidLoad
{
[super viewDidLoad];
heightSlider = [[UISlider alloc] init];
heightSlider.userInteractionEnabled = TRUE;
heightSlider.continuous = YES;
[heightSlider addTarget:self action:@selector(updateHeightLabel:)forControlEvents:UIControlEventValueChanged];
if (unitType == 0) {
heightSlider.maximumValue = 91.0;
heightSlider.minimumValue = 213.0;
}
else if (unitType ==1 ) {
heightSlider.maximumValue = 36.0;
heightSlider.minimumValue = 84.0;
}
}
-(IBAction) updateHeightLabel:(id)sender {
NSLog(@"Sender Value : %f", sender.value");
}
最佳答案
如果您已经在IB中创建了滑块,并将其连接到heightSlider属性,那么您不应该执行alloc / init来创建一个新滑块。您正在有效地创建一个不可见的滑块(因为您没有将其添加为子视图),并更改了其属性。
注释掉代码的alloc / init行...