【问题标题】:Scale NSView centered缩放 NSView 居中
【发布时间】:2017-08-31 18:45:15
【问题描述】:

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

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

【问题讨论】:

    标签: macos scale nsview


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      所以,这对我有用。

      祝你好运

      【讨论】:

      • 添加了另一个带有框架修复 + 1 的答案
      【解决方案3】:

      如果你可以要求10.8,那么你可以调用NSScrollView的函数:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        • 1970-01-01
        • 2018-02-11
        • 2012-10-14
        • 1970-01-01
        • 1970-01-01
        • 2015-07-10
        相关资源
        最近更新 更多