UIImageView Transform Scale
I have a UIButton that when pressed, will make a UIImageView scale slightly larger and then back to its normal size. It's working, but I'm running into a problem where the image eventually keeps getting slightly smaller the more you press the button.
How can I change the code s开发者_运维技巧o that the image doesn't get smaller as you press the button? Here's the code I have to scale the image slightly larger and then back to normal:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.2];
myImage.transform = CGAffineTransformScale(myImage.transform, 1.03, 1.03);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.2];
myImage.transform = CGAffineTransformScale(myImage.transform, 0.97, 0.97);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
Thanks for any help.
It's math. Scaling something by 1.03 * 0.97
results in scaling factor of 0.9991
and not 1.0
. Either use 1.0/1.03
as your second scaling factor or just set myImage.transform
to the identity transform (assuming you are not applying other transformations to that view).
Have you tried saving first transform?
And then instead of using CGAffineTransformScale
to shrink your UIImageView
you just use your saved transform?
CGAffineTransform firstTransform = myImage.transform;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.2];
myImage.transform = CGAffineTransformScale(myImage.transform, 1.03, 1.03);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration: 0.2];
myImage.transform = firstTransform;
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
You are suffering from a limitation in floating point arithmetic and cumulative matrix operations. You will never be able to represent 3/100, only approximate it with values like, 0.03
, 0.033
, and 0.0333
.
For your problem it would be better to set the second transform to the CGAffineTransformIdentity
精彩评论