-5

UISliderに4つの値があり、アプリケーションがロードされたときに1つを選択する必要があるbydefaul値が必要です。

ロードすると初期値が表示されるようにしたいと思います。

      slider=[[UISlider alloc] initWithFrame:CGRectMake(290, 152, 160, 36)];
      slider.minimumValue=0;
      slider.maximumValue=3;
      [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];

スライダーイベント

     -(IBAction)sliderAction:(id)sender 
     {
          NSString*testing=[[NSString alloc] initWithFormat:@"%d",(int)slider.value];
          if([testing isEqualToString:@"0"])
          {
              sliderLabel.text=@"5 (gal/acre)";
              sliderValue=@"5";
          }
          else if([testing isEqualToString:@"1"])
          {
              sliderLabel.text=@"10 (gal/acre)";
              sliderValue=@"10";
          }
          else if([testing isEqualToString:@"2"])
          {
              sliderLabel.text=@"15 (gal/acre)";
              sliderValue=@"15";
          }
          else 
          {
              sliderLabel.text=@"20 (gal/acre)";
              sliderValue=@"20";          
          }    
    }
4

1 に答える 1

0

スライダーで目立たない値0.0、1.0、2.0、または3.0を選択できるようにする必要がある場合は、次の2つのコントローラーイベントを処理する必要があります。

[slider addTarget:self action:@selector(handleSliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[slider addTarget:self action:@selector(handleSliderTouchUpInside:) forControlEvents:UIControlEventTouchUpInside];

前者は値の変更を制御する必要があり、後者はユーザーが指を離した後にスライダーピンの位置を修正します。

目立たないスライダー値を取得するには、次のように切り上げます。

- (float)roundedSliderValue:(UISlider *)slider
{
    return roundf([slider value]);
}

ユーザーがスライダーを動かしているとき、目立たないピン位置を取得する必要があります。

- (void)handleSliderValueChanged:(UISlider *)slider
{
    int idx = (int)[self roundedSliderValue:slider];

    switch (idx) {
    // update UI
    }
}

使用がスライダーの移動を終了した後、ピンの位置を修正し、デフォルトで値を保存する必要があります

- (void)handleSliderTouchUpInside:(UISlider *)slider
{
    float val = [self roundedSliderValue:slider]
    [slider setValue:val animated:YES];
    [[NSUserDefaults standardUserDefaults] setFloat:val forKey:@"SliderValue"];
}

を使用しNSUserDefaultsて、選択した値をデフォルトとして保存し、ロードすることができますviewDidLoad

- (void)viewDidLoad
{
    [super viewDidLoad];

    float sliderVal = [[NSUserDefaults standardUserDefaults] floatForKey:@"SliderValue"];
    [self.slider setValue:sliderVal];
}
于 2012-08-15T07:16:43.950 に答える