UIBezierPath-Анимационная Заливка

У меня есть UIBezierPath (круг), построенный постепенно с:

[circlePath addArcWithCenter:clockCenter radius:radius startAngle:angleRadians endAngle:1.5*M_PI clockwise:YES];
...
[circlePath closePath];
[COLOR_CIRCLE setFill];
[circlePath fill];

иногда я хотел бы анимировать заливку, чтобы она заняла секунду, чтобы полностью заполнить и следовать пути, как он был построен (по часовой стрелке). Каков предпочтительный метод достижения этой цели? Прямо сейчас я думаю о базовой анимации, но я надеюсь, что есть заполнение:withDelay или некоторые такие, на которые я не наткнулся. ТИА.

1 ответов


вы можете попробовать это:

создайте CAShapeLayer, чей path устанавливается в вашу форму. Используйте этот CAShapeLayer как маску для другого слоя, в который вы рисуем дуги/круг. Затем анимируйте угол дуги/окружности от 0º до 360º. Это может приблизить эффект, который вы хотите.

Я не могу найти "встроенный" способ анимировать заполнить, как вы хотите. Существует встроенный способ оживить ход, однако:

используйте UIView с CAShapeLayer, поддерживающим его. CAShapeLayer имеет path собственность. Затем вы можете применить анимацию к strokeStart и/или strokeEnd свойства.