1

我需要围绕它的中心缩放一个 NSView。我尝试使用 CATransform3DMakeScale 并且它可以将视图缩放到它的角落,但我无法实现居中。我尝试将图层锚点设置为 0.5、0.5 但这不起作用。我尝试使用 scaleUnitSquareToSize 但我遇到了一个问题,如果没有大量工作,这似乎无法重置。

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

4

3 回答 3

3

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

CGRect frame = layer.frame;
layer.anchorPoint = CGPointMake(.5, .5);
layer.frame = frame; // Fix the location shift caused from anchor change
于 2017-08-31T10:45:15.800 回答
2

我也面临着微笑的问题。请确保在构造之前执行该行CABasicAnimation

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

所以,这对我有用。

祝你好运

于 2013-07-23T13:03:24.680 回答
1

如果您可以要求 10.8,那么您可以调用NSScrollView's 函数:

- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(NSPoint)point
于 2015-10-23T01:25:01.443 回答