用CGAffineTransform进行缩放并设置锚点

如果我正确地理解用CGAffineTransform缩放一个UIView锚定转换到其中心。

尤其是:

 self.frame = CGRectMake(0,0,100,100); self.transform = CGAffineTransformMakeScale(2, 2); NSLog(@"%f;%f;%f;%f", self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height); 

打印:

 -50;-50;200;200 

你如何创build一个使用特定锚点(比如0; 0)的CGAffineTransform比例?

(一个)

缩放然后翻译?

就像是 :

 CGAffineTransform t = CGAffineTransformMakeScale(2, 2); t = CGAffineTransformTranslate(t, width/2, height/2); self.transform = t; 

(b)中

设置锚点(这可能是你真正想要的)

 [self layer].anchorPoint = CGPointMake(0.0f, 0.0f); self.transform = CGAffineTransformMakeScale(2, 2); 

(C)

再次设置中心,以确保它在同一个地方?

 CGPoint center = self.center; self.transform = CGAffineTransformMakeScale(2, 2); self.center = center; 

首先#import <QuartzCore/QuartzCore.h> ,然后设置你的视图的锚点:

  [[self layer] setAnchorPoint:CGPointMake(0, 0)];