Я оживляю сжатый объект. В любой момент пользователь может нажать кнопку, чтобы получить текущий масштабный коэффициент объекта. (Я начинаю с масштабирования объекта с помощью CGAffineTransformMakeScale, поэтому масштабный коэффициент должен быть 1, когда он достигнет своего первоначального размера). Я просто не знаю, как получить текущий коэффициент масштабирования от анимации UIImageView ... Вот мой код:Получение масштабного коэффициента от CABasicAnimation
- (void)startShrink {
CGAffineTransform scaleFactor = CGAffineTransformMakeScale(kScaleX, kScaleY);
imageOutline.transform = scaleFactor;
CABasicAnimation *shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0.5];
shrink.duration = 2.0;
shrink.fillMode=kCAFillModeForwards;
shrink.removedOnCompletion=NO;
shrink.delegate = self;
[imageOutline.layer addAnimation:shrink forKey:@"shrink"];
}
Я попытался следующие, но я не уверен, m12 значение, которое я должен быть получение из преобразования. Или, если на самом деле это правильный подход:
- (float)calculateScale {
CATransform3D scaleTransform = [(CALayer *)[imageOutline.layer presentationLayer] transform];
float scale = scaleTransform.m12;
NSLog(@"Scale: %g", scale);
return scale;
}
Любые советы наиболее оценили :)
Спасибо, Майкл.
Отличный - m11 сделал трюк, спасибо! Эти две строки предназначены для первоначального масштабирования изображения с коэффициентом 4, так что, когда применяется анимация, он сжимается от негабаритного до половины его первоначального размера. – Smikey