0

到目前为止,我已经构建了一个允许用户将图像拖放到 NSImageView 上的应用程序。但是,我希望能够通过简单地单击任何图像并按住鼠标按钮来移动它的位置来移动这些图像。

设置图像后如何操作 NSImageView 进行平移/缩放?那可能吗?我已经阅读了有关 NSAffineTransform 的信息,但它似乎是在创建图像本身之前移动图像。我已经在画布上有图像,我只想单击并按住图像并用鼠标移动它。请帮助任何人!

4

1 回答 1

2

这有两个方面。

NSImage是模型对象,您可能希望以不同的方式显示它,保存到磁盘/存档等。如果您想实际更改模型(缩放、旋转等),这意味着永久更改,那么您将大概想看看NSAffineTransform,石英图等。

但你可能不是那个意思。相反,您可能对 感兴趣NSImageView,它是一个视图对象,NSImage使用所需的任何显示属性显示模型对象的内容。如果您只想更改图像的显示方式,而不是图像中的实际字节,那么您将NSImageView在运行时操作。您也可以NSAffineTransform在此处使用,但这有点不常见(通常是不必要的)。

需要注意的关键是NSImageView继承自NSView,因此您可以使用它的所有功能。看看某些方法,例如:

-setFrameSize:- 可用于更改视图大小,从而更改图像显示比例

-setFrameOrigin:- 用于改变视图位置,从而改变明显的图像位置

再次注意,这些与图像本身无关,适用于所有 Cocoa 视图。你可能想看看像Cocoa Programming for Mac OS X这样的书,让你了解基础知识。(然后你可以做更多有趣的事情,比如旋转、动画等)

于 2012-06-18T22:30:08.000 回答