Основная анимация и drawRect: - PullRequest
2 голосов
/ 12 октября 2010

У меня UITableViewCell, нарисованный с использованием drawRect:.Я рисую фигуру в drawRect и хотел бы анимировать эту фигуру (используя некоторый параметр), когда ячейка переходит в режим редактирования.

Однако я не смог найти, как использовать анимированные параметры в drawRect.Может кто-нибудь указать мне правильную документацию или это невозможно?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 12 октября 2010

Изучите использование CAShapeLayer для создания фигур, оно имеет свойство анимации path.

CAShapeLayer* shape = [CAShapeLayer layer];
// Changing this will implicitly animate to new path
shape.path = [UIBezierPath bezierPathWithOvalInRect:someRect].CGPath;
shape.fillColor = [UIColor redColor].CGColor;

Для большего контроля над анимацией используйте CATransaction.

2 голосов
/ 12 апреля 2011

Вам не ясно, что за форма и какая анимация.Если вам просто нужна базовая форма, такая как квадрат, прямоугольник или круг, вы можете избежать переопределения drawRect и просто использовать CALayer - добавляя его в иерархию слоев вашей ячейки.Для других фигур вы можете сделать то же самое со слоем фигур.

Вы должны рассмотреть drawRect для содержимого вида чертежа, а не для анимации.Это хорошо, если вы хотите визуализировать вид с помощью drawRect, но если вы просто собираетесь переместить фигуру, анимируйте вместо этого центр представления или положение слоя.Я бы рекомендовал против этого), вам, вероятно, придется анимировать пользовательское свойство, которое вы будете использовать в вашем drawRect, но я держу пари, что то, что вы пытаетесь сделать, можно сделать проще без drawRect.Слои являются вашим другом и могут помочь вам во многих ситуациях.Возможно, опишите, что вы пытаетесь сделать, и кто-то может предложить вам более полное решение.

С наилучшими пожеланиями.

...