И , и borderWidth
являются анимированными, но поскольку вы делаете это в подклассе вида вне блока анимации UIView, неявные анимации (те, которые происходят автоматически при изменении значения) отключены.
Если вы хотите анимировать эти свойства, вы можете сделать явную анимацию с помощью CABasicAnimation
. Поскольку вы анималируете два свойства на одном уровне, вы можете добавить их как в группу анимации, так и только один раз настроить продолжительность, время и т. Д. Обратите внимание, что явные анимации являются чисто визуальными, значение модели (фактическое свойство) не изменяется при их добавлении. Вот почему вы оба настраиваете анимацию и устанавливаете значение модели.
CABasicAnimation *color = [CABasicAnimation animationWithKeyPath:@"borderColor"];
// animate from red to blue border ...
color.fromValue = (id)[UIColor redColor].CGColor;
color.toValue = (id)[UIColor blueColor].CGColor;
// ... and change the model value
self.layer.borderColor = [UIColor blueColor].CGColor;
CABasicAnimation *width = [CABasicAnimation animationWithKeyPath:@"borderWidth"];
// animate from 2pt to 4pt wide border ...
width.fromValue = @2;
width.toValue = @4;
// ... and change the model value
self.layer.borderWidth = 4;
CAAnimationGroup *both = [CAAnimationGroup animation];
// animate both as a group with the duration of 0.5 seconds
both.duration = 0.5;
both.animations = @[color, width];
// optionally add other configuration (that applies to both animations)
both.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.layer addAnimation:both forKey:@"color and width"];
Если посмотреть на the documentation for CABasicAnimation в разделе «Установка значения интерполяции», вы увидите, что это не нужно указывать как toValue и fromValue, как я сделал, так что код может быть немного короче. Тем не менее, для ясности и удобочитаемости (особенно, когда вы начинаете с Core Animation), более явные могут помочь вам (и вашему коллеге) понять код.
Что вы хотите анимировать ? Пограничный облик? Или вращение? –
@ValentinShamardin окантовка вид. Тот же эффект, что и анимация смены кадров. –