web-dev-qa-db-ja.com

iOSでUISliderをプログラムで作成して表示するにはどうすればよいですか?

Appleドキュメントで以下のコードを見つけてviewDidLoadメソッドに追加しましたが、コードを実行してもスライダーが表示されません。

CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
UISlider *slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue = 50.0;
slider.continuous = YES;
slider.value = 25.0;
40
cgossain

ビュー階層にスライダーを追加する必要があります。追加 [self.view addSubview:slider];そしてそれは動作するはずです。

26
Michal

このコードを試してください:

新しいスライダーを作成する

-(IBAction)mySlider
{ 
    CGRect frame = CGRectMake(0.0, 0.0, 200.0, 10.0);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    slider.value = 25.0;
    [self.view addSubview:slider];
}

スライダーアクション

-(void)sliderAction:(id)sender
{
    UISlider *slider = (UISlider*)sender;
    float value = slider.value;
    //-- Do further actions
}
22

[self.view addSubview:slider]を介したビューへの追加は、前述のように必須です。

私の場合、CGRect frame = CGRectMake(0.0、0.0、200.0、10.0);

あなたはおそらくそれを少し落として、多分左マージンからそれを取り除くべきです。

たぶん? CGRectフレーム= CGRectMake(5.0、10.0、200.0、10.0);

IOS 6以降では、実際にこれを追加して、実際にロードしたものも表示する必要があります(フレームを下げた場合でも表示できます)。

  if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
  {
      self.edgesForExtendedLayout=NO;
  }
0
DontKnow