Шаги, которые я предпринял здесь, были в значительной степени такими же, как указано в ответе Джертонтона, но я обнаружил, что ползунок будет заметно отставать от моих движений.Вот как я это сделал:
Поместите ползунок в представление в Интерфейсном Разработчике.Установите минимальные / максимальные значения ползунка.(Я использовал 0 и 5)
В файле .h:
@property (strong, nonatomic) IBOutlet UISlider *mySlider;
- (IBAction)sliderChanged:(id)sender;
В файле .m:
- (IBAction)sliderChanged:(id)sender
{
int sliderValue;
sliderValue = lroundf(mySlider.value);
[mySlider setValue:sliderValue animated:YES];
}
После этого в Interface Builder я подключилсядо события «Touch Up Inside» для ползунка «Владелец файла», а не «значение изменено».Теперь он позволяет мне плавно перемещать ползунок и привязывать к каждому целому числу, когда мой палец поднят.
Спасибо @jrturton!
ОБНОВЛЕНИЕ - Swift:
@IBOutlet var mySlider: UISlider!
@IBAction func sliderMoved(sender: UISlider) {
sender.setValue(Float(lroundf(mySlider.value)), animated: true)
}
Также, если есть какая-то путаница при подключении вещей в раскадровке, я загрузил быстрый пример на github: https://github.com/nathandries/StickySlider