7

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

谢谢。

4

3 回答 3

9

给您的观点发送scaleUnitSquareToSize:消息

于 2010-03-15T01:43:03.203 回答
8

您可能还会发现以下信息:

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

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

于 2010-03-15T01:48:37.300 回答
0

上述答案不适用于我的场景,但让我找到了解决方案。

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

我发现了两个缩放的灵魂:

  1. 手动裁剪边界
  2. 缩放边界scaleUnitSquareToSize

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

要了解边界与框架,请阅读这篇 SO 文章:difference-between-the-frame-and-the-bounds

快速调用代码:

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
于 2018-03-30T10:23:54.953 回答