I don't know if you can use a CAKeyframeAnimation for animating the scale of a UIView, but you can do it with a CABasicAnimation and setting the fromValue and toValue properties, and using that to animate the transform property:

Thank you akosma! I have tried that way of scaling but I cant figure out how do add more than 2 keyframes. With 'setAutoreverses' it goes from A to B then back to A. I want to go from A to B to C to D. do you know if you can add more 'fromValues' and 'ToValues'? Thanks
–
Jonathan Jan 4 '10 at 11:29

Take a look at the CAAnimationGroup class. It inherits from CAAnimation, and with it you can "chain" individual CABasicAnimations, each with its own fromValue and toValue. Might this be what you are looking for?
–
akosmaJan 4 '10 at 14:49

Scratch that, I've checked the docs and it appears that animations in a CAAnimationGroup are run concurrently, not one after the other. Bummer. You should set delegates for your animations, and then start a new animation when the previous one has finished.
–
akosmaJan 4 '10 at 14:57