iphone: анимация подслоя CALayer - PullRequest
1 голос
/ 17 ноября 2010

Я пытаюсь анимировать подслой слоя UIView с помощью следующего кода:

CALayer *sublayer = [[CALayer alloc] init];
[sublayer setFrame:myRect]; // myRect is a portion of the view's frame rectangle
[self.layer addSublayer:sublayer];

и позже в моем методе drawRect::

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"opacity"];
anim.duration = 1.0f;
anim.fromValue = [NSNumber numberWithFloat:1];
anim.toValue = [NSNumber numberWithFloat:.5];
anim.delegate = self;
[sublayer addAnimation:anim forKey:@"animateOpacity"];

Я непонять, почему мой подуровень не анимируется, поскольку код [self.layer addAnimation:anim forKey:@"animateOpacity"]; действительно анимирует основной слой представления.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Не добавляйте CAAnimation с во время drawRect: метода.CoreAnimation вызывает его, когда ему нужно перерисовать содержимое представления (что может быть в любое время).Вместо этого вы должны добавить анимацию после того, как представление было добавлено к его родителю.

2 голосов
/ 02 декабря 2010

Вы не можете анимировать свойство кадра. Вместо этого анимируйте границы или положение.

...