2010-04-17 2 views
2

Я искал вокруг, но, кажется, нет хорошего ответа на этот простой вопрос. Поэтому я снова спрашиваю: как оживить рисование линии в iphone dev?Как анимировать рисование линии в iPhone?

В основном то, что я хочу что-то вроде этого:

@implementation MyUIView 

- (void) triggerLineDrawing: (CGPathRef) path { 
    ... 
    // animate line drawing here 
    // and the line should disappear automatically after a few seconds 
} 

Можно ли это сделать?

+0

Что вы подразумеваете под "animate"? Появляется пиксель за пикселем? Или просто появляется, изменяя непрозрачность от полностью прозрачного до непрозрачного? – bealex

+0

да, что-то вроде пикселя за пикселем. Не затухать и выходить. – david

+0

Вы нашли хорошее решение для этого? Я ищу сделать то же самое, и решение таймера отстает от моего приложения, что-то шокирующее. Там должен быть лучший путь! – user700774

ответ

0

Вы не можете делать это автоматически, только вручную. Чтобы сделать это вручную, вы должны сделать что-то вроде этого:

  • создать массив ваших точек линии.
  • Запустите NSTimer, который будет срабатывать, например, 15 раз в секунду.
  • каждый тик таймера вы должны выяснить, какую часть линии, которую вы должны сделать (посмотреть на линейной интерполяции)
  • обновления пути, который вы рисуете (только с нужными точками + последним моментом, что двигается)
  • отправить setNeedsDraw сообщение для просмотра.

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

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