0

[heightSlider addTarget:self action:@selector(updateHeightLabel :) forControlEvents:UIControlEventValueChanged];ファイルで次heightSliderのように宣言しました.h@property (retain, nonatomic) UISlider *heightSlider;そしてそれはファイル@synthesize heightSlider; にあり.mます。

IB、私はそれをに接続しましupdateHeightLabelvalueChanged。また、デフォルトがmaximumValueあり、に設定minimumValueされ36.0ています。84.0IB

のデフォルト値はunitTypeです0。したがって、heightSlider.maximumValueはそれに応じて設定する必要があり、したがって からにNSLog変更しますが、変更しません。デフォルト値からの変更です。91.0213.0NSLogsIB

また[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 に答える