2014-02-18 2 views
0

В моем текущем проекте я создал приложение, которое использует позицию UISlider в отношении целевого значения, отображаемого пользователю. У меня есть полная функциональность, но теперь я пытаюсь немного подправить ее.Создание UISlider взад и вперед самостоятельно

Возможно ли установить UISlider для перехода от (минимум до максимума), чем (максимум через минимум) назад и вперед самостоятельно, когда пользователь входит в приложение, а не перетаскивает его?

Мысли:

Возможно использовать циклическую последовательность?

Не ищите кого-то, чтобы закодировать это для меня. Мне очень нравится эта часть. Просто ищите руководства.

ответ

0

В дополнение к ответу NSTimer, я бы не предложил использовать это, но CADisplayLink вместо этого. Подобный процесс, но вместо использования NSTimer использует CADisplayLink.

CADisplayLink синхронизируется с частотой обновления экрана, поэтому вы можете настроить значение анимации и слайдера на основе текущего кадра, чтобы анимация выглядела плавно.

http://patzearfoss.com/2011/09/02/more-cadisplaylink/

0

UISlider имеет this method, что позволяет программно изменить значение слайдера:

- (void)setValue:(float)value animated:(BOOL)animated 

Будьте осторожны при использовании петли, хотя, вы не хотите, чтобы заблокировать ваш основной поток сделать ваше приложение не отвечает.

Trumpetlick's answer содержит полезную информацию об использовании NSTimer, которая должна помочь вам в этом.

+0

Довольно уверен, что это привычка обеспечить реальное действие ОП ищет. Он также должен иметь возможность запускать код действия (скорее всего), который запускается, когда его пользователь фактически использует слайдер, но setValue - это то, что он хотел бы использовать для установки значения самого ползунка. – trumpetlicks

+0

Мне показалось, что он не нуждается в том, чтобы пользователь перетащил ползунок. – connor

+0

У вас есть хороший момент, я думаю, что он/она не предоставил достаточно подробностей для нас, чтобы узнать, что еще, во всяком случае, он хочет делать, кроме того. Единственное, что заставляет меня задаться вопросом, почему он/она имеет слайдер в дизайне, если они не хотят, чтобы пользователь взаимодействовал с ним, и предпринимали ли какие-то действия, когда они это делали? Все зависит от того, что он намеревается на самом деле сделать LOL – trumpetlicks

0

Я думаю, что в этом случае вам нужно будет установить NSTimer со временем, которое вы пожелаете на каждый кадр, разделить код действия внутри слайдера на процедуру, которую вы можете вызывать, а затем в коде действия таймера , вызовите свою рутину, а затем установите положение ползунка вручную.

Посмотрите здесь за создание NSTimer

How do I use NSTimer?

NSTimer существенно позволит вам настроить любой фреймрейт вы хотите, и сохранить его в основной поток.

Смежные вопросы