[heightSlider addTarget:self action:@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");
}
答案 0 :(得分:4)
如果你在IB中创建了滑块,并将它连接到你的heightSlider属性,那么你不应该使用alloc / init来创建一个新的。您正在有效地创建一个不可见的滑块(因为您不将其添加为子视图),并更改其属性。
注释掉alloc / init代码行......