如何在 Cocoa 中创建平移和缩放画布(如 Photoshop)

mon*_*eme 3 cocoa uiscrollview nsview nsscrollview swift

我正在 Cocoa 中为 Mac 开发一个非常简单的绘图应用程序,并尝试NSScrollView创建一个动态调整大小的绘图画布,但它似乎不起作用。

我希望NSView当我滚动(平移)时尺寸会增大,并且当我缩小时尺寸也会增大。显然,我设置了画布的最大大小来限制内存,但不知道从哪里开始。

有什么想法吗?另外,对于 iOS 或 UIKit 解决方案有什么想法吗?我可以根据需要进行调整。

mon*_*eme 5

每当我滚动时,使用 ScrollView 或 UIScrollView 都需要增加其大小,并且会极大地减慢我的应用程序的速度。我考虑使用平铺滚动视图,但这也只是创建了一个巨大的滚动视图。

我最终所做的是创建一个“画布”视图,然后用户可以对其进行操作。当他们想要缩放时,只需缩放该“画布”以创建缩放的错觉,当他们想要在无限工作区域中平移时,画布只需移动以创建平移的错觉。

基本上,我通过允许用户在有限的 NSView 中移动感兴趣的对象来创建无限画布的幻觉,并且能够将其移出屏幕,并在需要时返回屏幕。

  • 我正在寻求实现类似的东西。您有可以分享的代码片段吗? (2认同)