У меня есть UISlider со значением 0, минимальным значением 0 и максимальным значением 360 (установленным из области утилит), и я хочу, чтобы значение увеличивалось на 15 (с размером интервала 15) при каждом пролистывании VoiceOver, и сделать это щелчком с каждым ударом. например проведя пальцем вправо один раз -> 15, дважды -> 30 и т. д. Я слушал, какое текущее значение на слайдере использует VoiceOver.
Я уже пробовал что-то похожее на:
float interval = 5.0f;//set this
[slider setValue:interval*floorf((slider.value/interval)+0.5f) animated:NO];
источник: https://stackoverflow.com/a/2519573/11693942
что я сделал на основе этого кода:
angle = Double(15 * floorf((sender.value/15) + 0.5))
sender.setValue(Float(angle), animated: true)
но это заставляет мой ползунок увеличиваться на 30.
Далее я попробовал:
angle = Double(15 * floorf((sender.value/30) + 0.5))
sender.setValue(Float(angle), animated: true)
, который увеличивает мой ползунок на 15, но затем ползунок застревает на 30. Я не могу увеличить значение, но могу уменьшить его. На этом этапе VoiceOver продолжает говорить, что значение тоже 30.
Я не получил никаких сбоев или сообщений об ошибках. Остальная часть моего приложения все еще работает.