Как я могу создать и отобразить UISlider программно в iOS? - PullRequest
40 голосов
/ 24 октября 2010

Я нашел приведенный ниже код в документации 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;

Ответы [ 3 ]

26 голосов
/ 24 октября 2010

Вам необходимо добавить ползунок в иерархию представлений. Добавьте [self.view addSubview:slider];, и оно должно работать.

22 голосов
/ 10 декабря 2013

Попробуйте этот код:

Создать новый ползунок

-(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
}
0 голосов
/ 07 сентября 2016

Добавление к представлению через [self.view addSubview: slider] КАК ПРЕДЫДУЩАЯ ЗАПИСЬ - очень важно.

не было видно для меня при: CGRect frame = CGRectMake (0.0, 0.0, 200.0, 10.0);

Вы, вероятно, должны немного его опустить и, возможно, убрать с левого поля.

возможно?CGRect frame = CGRectMake (5.0, 10.0, 200.0, 10.0);

Для ios 6 и более поздних версий вы должны действительно добавить это, чтобы просмотреть загрузку также (чтобы вы могли видеть это - даже если вы опустили рамку)

  if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
  {
      self.edgesForExtendedLayout=NO;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...