Анимация Рост/Уменьшение Размер imageView iOS
Я пытаюсь анимировать пользовательскую кнопку с помощью CGAffineTransformMakeScale следующим образом:
if (stateButton == 0) { //The button is gonna appear
self.selected = YES;
self.imageView.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
// animate it to the identity transform (100% scale)
self.imageView.transform = CGAffineTransformIdentity;
} completion:nil];
}
else if (stateButton ==1) { //The button is gonna disappear
self.imageView.transform = CGAffineTransformMakeScale(1, 1);
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
// decrease button
self.imageView.transform = CGAffineTransformMakeScale(.01, .01);
} completion:^(BOOL finished){
self.selected = NO;
}];
}
Кнопка отлично подходит к исходному размеру, однако я не знаю причину, но когда я нажимаю кнопку, чтобы уменьшить ее, она уменьшается с размера, такого, как 100% больше, чем первоначальный размер до исходного размера, вместо начала уменьшения первоначального размера и достижения шкалы 0,01, как я указал в коде.
Пожалуйста, помогите!
Ответы
Ответ 1
Вы можете анимировать увеличение и уменьшение размера изображения с помощью следующего кода
[UIView animateWithDuration:2.0 animations:^{
self.imageView.transform = CGAffineTransformMakeScale(0.5, 0.5);
}
completion:^(BOOL finished){
[UIView animateWithDuration:2.0 animations:^{
self.imageView.transform = CGAffineTransformMakeScale(1, 1);
}];
}];
Это приведет к уменьшению размера изображения вначале, и когда анимация закончится, он вернется к исходному размеру с помощью анимации.
Ответ 2
Версия SWIFT 3
UIView.animate(withDuration: 2.0, animations: {() -> Void in
self.imageView?.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
}, completion: {(_ finished: Bool) -> Void in
UIView.animate(withDuration: 2.0, animations: {() -> Void in
self.imageView?.transform = CGAffineTransform(scaleX: 1, y: 1)
})
})