If I understand correctly scaling a UIView
with CGAffineTransform
anchors the transformation to its center.
In particular:
Firstly #import <QuartzCore/QuartzCore.h>
and then set the anchor points of your view:
[[self layer] setAnchorPoint:CGPointMake(0, 0)];
(a)
Scale and then translate?
Something like :
CGAffineTransform t = CGAffineTransformMakeScale(2, 2);
t = CGAffineTransformTranslate(t, width/2, height/2);
self.transform = t;
(b)
Set the anchor point (which is probably what you want really)
[self layer].anchorPoint = CGPointMake(0.0f, 0.0f);
self.transform = CGAffineTransformMakeScale(2, 2);
(c)
Set the center again to make sure it's in the same place?
CGPoint center = self.center;
self.transform = CGAffineTransformMakeScale(2, 2);
self.center = center;