【问题标题】:How to create a pan and zoom canvas (like Photoshop) in Cocoa如何在 Cocoa 中创建平移和缩放画布(如 Photoshop)
【发布时间】:2016-05-18 13:25:49
【问题描述】:

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

我想要一个NSView,当我滚动(平移)时它会变大,当我缩小时它也会变大。显然我会为画布设置最大尺寸以限制内存,但只是不知道从哪里开始。

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

【问题讨论】:

    标签: swift cocoa uiscrollview nsview nsscrollview


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在寻求实现类似的东西。你有任何可以分享的代码 sn-ps 吗?
    • 你能分享一点代码吗?我想实现相同的功能。谢谢
    【解决方案2】:

    您似乎正在寻找使用UIScrollViewNSScrollView 的教程! (你最好在谷歌上做)

    要使用UIScrollView,您必须符合UIScrollViewDelegate 协议,然后实现所需的功能。您可以找到详细说明here

    【讨论】:

    • 是的。我对 Scrollviews 和代表了如指掌,因此我在这里问。
    猜你喜欢
    • 2018-05-13
    • 2014-09-14
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2019-12-03
    • 2016-10-21
    • 2017-06-26
    • 2011-07-17
    相关资源
    最近更新 更多