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

IB中,我将其连接到updateHeightLabel上的valueChanged。我还将maximumValue中的默认minimumValue36.0设置为84.0IB

unitType的默认值为0。因此,应相应地设置heightSlider.maximumValue,从而将NSLog91.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");

}

最佳答案

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

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

10-08 02:31