0

[heightSlider addTarget:self action:@selector(updateHeightLabel:)forControlEvents:UIControlEventValueChanged];我heightSlider在文件中声明.h如下: @property (retain, nonatomic) UISlider *heightSlider;@synthesize heightSlider;.m文件中。

IB,我把它连接到updateHeightLabelvalueChanged。我也有默认设置maximumValueminimumValue设置36.084.0.IB

unitType的默认值为0。所以heightSlider.maximumValue应该相应地设置,从而 NSLog改变从91.0到,213.0但它没有。它NSLogsIB默认值更改。

[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");

}
4

1 回答 1

4

如果您在 IB 中创建了滑块,并将其连接到您的 heightSlider 属性,那么您不应该执行 alloc/init 来创建新的。您正在有效地创建一个不可见的滑块(因为您没有将其添加为子视图),并更改其属性。

注释掉 alloc/init 代码行...

于 2012-08-23T12:21:18.057 回答