Почему вы не хотите использовать анимационные блоки UIView? Анимация изменения непрозрачности вида (UILabel или иным образом) с этим довольно проста. Например, следующий код будет затенять данный вид в течение 0,5 секунд:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
viewToFadeOut.alpha = 0.0f;
[UIView commitAnimations];
Чтобы добавить, просто замените альфа-значение 0.0f на 1.0f.
Вы можете сделать то же самое, используя CABasicAnimation, созданный вручную, манипулируя слоем UIView:
CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeOutAnimation.duration = 0.5f;
fadeOutAnimation.removedOnCompletion = NO;
fadeOutAnimation.fillMode = kCAFillModeForwards;
fadeOutAnimation.toValue = [NSNumber numberWithFloat:0.0f];
[viewToFadeOut.layer addAnimation:fadeOutAnimation forKey:@"animateOpacity"];
Если все, что вы хотите сделать, это добавить / уменьшить границу вокруг вида, попробуйте анимировать свойство borderColor слоя UIView (аналогично CABasicAnimation выше, заменив opacity
только на borderColor
и toValue на CGColor приведен к id
).