我有一个NSView,用户可以在其中绘制圆圈。这些圆圈存储为NSBezierPaths数组,在drawRect:中,我遍历数组并在每个路径上调用-stroke
。如何添加按钮来放大和缩小NSView?只需更改视图的边界?
感谢。
答案 0 :(得分:8)
答案 1 :(得分:7)
您可能还会发现这些信息:
https://developer.apple.com/library/content/qa/qa1346/_index.html
该文档中的代码允许您向视图添加“scale”属性。
答案 2 :(得分:0)
上述答案对我的方案不起作用,但让我找到了解决方案。
@ Peter的答案的更新链接很有帮助:scaleUnitSquareToSize
我找到了两个缩放灵魂:
scaleUnitSquareToSize
我创建了一个小型测试项目。这两个解决方案都可以在我的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