缩放NSView居中

时间:2013-06-15 14:03:45

标签: macos scale nsview

我需要围绕它的中心扩展NSView。 我尝试使用CATransform3DMakeScale,它努力将视图扩展到它的角落,但我无法实现它的中心。我试图将图层锚点设置为.5,.5,但这不起作用。 我尝试使用scaleUnitSquareToSize,但我遇到了一个问题,即如果没有大量的工作,这似乎是无法解决的。

最后,我需要能够将NSView的比例设置为0.8,并让它在中心周围缩小,并能够再次将比例设置为1以重置它。

3 个答案:

答案 0 :(得分:2)

我也遇到过类似的问题。 请确保在构造CABasicAnimation之前执行该行。

layer.anchorPoint = CGPointMake(.5, .5);

所以,这对我有用。

祝你好运

答案 1 :(得分:2)

为@ fyasar的答案添加了一个框架修复,适用于MacOS:

CGRect frame = layer.frame;
layer.anchorPoint = CGPointMake(.5, .5);
layer.frame = frame; // Fix the location shift caused from anchor change

答案 2 :(得分:1)

如果您需要10.8,那么您可以拨打NSScrollView的功能:

- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(NSPoint)point