我需要围绕它的中心缩放一个 NSView。我尝试使用 CATransform3DMakeScale 并且它可以将视图缩放到它的角落,但我无法实现居中。我尝试将图层锚点设置为 0.5、0.5 但这不起作用。我尝试使用 scaleUnitSquareToSize 但我遇到了一个问题,如果没有大量工作,这似乎无法重置。
最后,我需要能够将 NSView 的比例设置为 0.8 之类的东西,并让它围绕它的中心缩小,并能够再次将比例设置为 1 以重置它。
为@fyasar 的答案添加了框架修复,适用于 MacOS:
CGRect frame = layer.frame;
layer.anchorPoint = CGPointMake(.5, .5);
layer.frame = frame; // Fix the location shift caused from anchor change
我也面临着微笑的问题。请确保在构造之前执行该行CABasicAnimation
。
layer.anchorPoint = CGPointMake(.5, .5);
所以,这对我有用。
祝你好运
如果您可以要求 10.8,那么您可以调用NSScrollView
's 函数:
- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(NSPoint)point