放大NSView

时间:2010-03-15 01:31:19

标签: objective-c cocoa nsview appkit nsscrollview

我有一个NSView,用户可以在其中绘制圆圈。这些圆圈存储为NSBezierPaths数组,在drawRect:中,我遍历数组并在每个路径上调用-stroke。如何添加按钮来放大和缩小NSView?只需更改视图的边界?

感谢。

3 个答案:

答案 0 :(得分:8)

发送您的观点a scaleUnitSquareToSize: message

答案 1 :(得分:7)

您可能还会发现这些信息:

https://developer.apple.com/library/content/qa/qa1346/_index.html

该文档中的代码允许您向视图添加“scale”属性。

答案 2 :(得分:0)

上述答案对我的方案不起作用,但让我找到了解决方案。

@ Peter的答案的更新链接很有帮助:scaleUnitSquareToSize

我找到了两个缩放灵魂:

  1. 手动裁剪边界
  2. scaleUnitSquareToSize
  3. 来划分边界

    我创建了一个小型测试项目。这两个解决方案都可以在我的GitHub仓库中找到:BoundsAndFramesCroppingAndScalling

    要理解边界与帧,请阅读此SO文章:difference-between-the-frame-and-the-bounds

    Swift scalling code:

    let scaleSize = NSSize(width: 0.5, height: 0.5)
    // 0.5 - Half the size
    // 1.0 - No calling
    // 2.0 - double the size , ... etc
    myView?.scaleUnitSquare(to: scaleSize)
    myView?.needsDisplay = true