iOS - Как управлять рисованием UIBezierPath с помощью UISlider?

Я хочу управлять отрисовкой своего UIBezierPath с помощью UISlider.

Цель состоит в том, чтобы иметь возможность очистить временную шкалу (UISlider) и заставить линию (UIBezierPath) рисоваться на основе текущей позиции ползунка.

Так что, когда я прокручиваю вперед, путь отображается вперед, а когда я прокручиваю назад, путь отображается назад.

У меня есть код для отображения пути в обоих направлениях на основе этого примера кода, к которому я добавил обратный путь (https://github.com/ole/Animated-Paths)

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

Привет Дэмиен


person damien murphy.    schedule 26.10.2012    source источник


Ответы (2)


Если вы отслеживаете «события управления" UISlider, например так:

[yourSlider addTarget:self action:@selector(seekBegan:) forControlEvents:UIControlEventTouchDown];
[yourSlider addTarget:self action:@selector(seekContinues:) forControlEvents:UIControlEventTouchDragInside];
[yourSlider addTarget:self action:@selector(seekEnded:) forControlEvents:UIControlEventTouchUpInside];

.. затем вы можете делать свои анимации внутри "seekContinues:". Я не могу сказать, насколько гладко это будет, хотя! так как может быть много вызовов этого метода.

person coco    schedule 27.10.2012

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

По сути, я установил индекс в подклассе, который контролировал, сколько точек рисует метод drawrect.

Это дало мне желаемый подход и позволило изменить значение в зависимости от ползунка.

Для рисования я использовал CGContextMoveToPoint и CGContextAddLineToPoint для отображения путей.

Ваше здоровье

person damien murphy.    schedule 30.10.2012