Можете ли вы анимировать градиенты с помощью кварца в iPhone? - PullRequest
3 голосов
/ 30 ноября 2009

Я новичок в разработке для iPhone и в настоящее время пытаюсь воссоздать инструмент для построения графиков, который я разработал для Silverlight.

В настоящее время я использую градиент, чтобы «заполнить» прямоугольник, представляющий столбец на графике. Можно ли анимировать этот градиент, чтобы он менял цвет, когда пользователь касается панели на графике.

Я просмотрел руководства по базовой анимации, предоставленные Apple, но не вижу свойства, нацеленного на градиенты. Я полагаю, что я мог бы использовать переход для затухания между двумя канатами, один из которых имеет мой начальный градиент, а второй - с «тронутой» версией, но это, очевидно, означало бы рисование нескольких прямоугольных объектов для каждого бара с дополнительными накладными расходами производительности. *

Есть идеи?

1 Ответ

11 голосов
/ 01 декабря 2009

Да, действительно, вы можете анимировать градиенты с помощью Core Animation.

Класс CAGradientLayer, вышедший в версии 3.0, имеет приятный API для рендеринга градиентов в слой, а также для анимации изменений цвета и цветовой остановки.

Я сделал пост для этого класса некоторое время назад вместе с некоторым примером кода, который связан внизу.

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

Проверьте это и дайте мне знать, если у вас есть какие-либо вопросы, касающиеся пользовательского интерфейса, который вы пытаетесь анимировать.

...