Как программно создать слайдер диапазона в iOS?

Я хочу создать ползунок диапазона. но когда я назначаю 2 ползунка в одном и том же положении, тогда работает только 1. Я нашел несколько внешних API для создания слайдера. Есть ли способ программно создать слайдер Range в iOS.

Вот мой код ..

  CGRect frame = CGRectMake(20, 330, 300, 60);

slider1 = [[UISlider alloc] initWithFrame:frame];
[slider1 addTarget:self action:@selector(sliderActionMin:) forControlEvents:UIControlEventValueChanged];
[slider1 setBackgroundColor:[UIColor clearColor]];
slider1.minimumValue = 0.0;
slider1.maximumValue = 55.0;
slider1.continuous = YES;
slider1.value= 16
slider1.contentMode=UIViewContentModeScaleToFill;
[self.view addSubview:slider1];


slider2 = [[UISlider alloc] initWithFrame:frame];
[slider2 addTarget:self action:@selector(sliderActionMin:) forControlEvents:UIControlEventValueChanged];
[slider2 setBackgroundColor:[UIColor clearColor]];
slider2.minimumValue = 0.0;
slider2.maximumValue = 55.0;
slider2.continuous = YES;
slider2.contentMode=UIViewContentModeScaleToFill;
slider2.value=[SingletonClass sharedSingleton].minAge;
[self.view addSubview:slider2];

person M Swapnil    schedule 02.06.2015    source источник
comment
Почему вы назначаете 2 ползунка в одну позицию?   -  person Bannings    schedule 02.06.2015
comment
Это означает, что два ползунка в одной позиции, 1 для минимального значения, а 2-й для максимального значения .. вы понимаете?   -  person M Swapnil    schedule 02.06.2015
comment
@ Bannings-Потому что я хочу показать диапазон возраста. вроде с 16 до 22   -  person M Swapnil    schedule 02.06.2015
comment
создать пользовательский элемент управления с помощью UIView! ИЛИ, если вы нашли какие-то внешние API, просто используйте их! в чем проблема?   -  person Saurabh Prajapati    schedule 02.06.2015
comment
UISlider не поддерживает два больших пальца или диапазон. Он поддерживает только одно значение.   -  person rmaddy    schedule 02.06.2015
comment
@ rmaddy-Вот о чем я спрашиваю, есть ли способ?   -  person M Swapnil    schedule 02.06.2015
comment
Всякий раз, когда вы добавляете подвид внутри вида в ту же позицию, он добавляет подвиды как элементы стека. Подумайте логически ... похоже, вы пытаетесь дотронуться до объекта, который находится за прозрачной стеной.   -  person Sujay    schedule 02.06.2015


Ответы (2)


Вы добавляете один ползунок над другим ползунком. Таким образом, согласно стандартам Cocoa-Touch, только верхний (недавно добавленный) ползунок будет обнаруживать все события. Первый ползунок будет недоступен, поскольку вы добавили оба ползунка в одно и то же значение кадра.

Для iOS доступно так много примеров Range Slider. Ниже приведены несколько примеров, которые могут вам помочь.

person Rahul Patel    schedule 02.06.2015
comment
MARKRangeSlider действительно великолепен и интуитивно понятен, я потратил полдня на борьбу с NMRangeSlider - person etayluz; 19.07.2015
comment
Я использовал TTRangeSlider, он имеет множество настраиваемых функций - person Arpit B Parekh; 18.11.2020

VPRangeSlider: вы также можете использовать это, которое предоставляет как сегментированный, так и несегментированный слайдер для iOS.

person Varun    schedule 15.01.2016