到目前为止,我已经构建了一个应用程序,允许用户将图像拖放到NSImageView上。但是,我希望能够通过简单地单击任何图像并按住鼠标按钮来移动这些图像的位置。
如何操作 NSImageView 在设置图像后进行平移/缩放?这可能吗?我已经阅读了有关NSAffineTransform的信息,但似乎在创建映像本身之前移动图像。我已经在画布上有了图像,只想单击并按住图像并用鼠标移动它。请帮助任何人!
这有两个方面。
NSImage
是模型对象,您可能希望以不同的方式显示,保存到磁盘/存档等。 如果你想实际改变模型(缩放、旋转等),意味着永久的改变,那么你可能需要看看NSAffineTransform
、石英绘图等。
但你可能不是那个意思。 相反,您可能对 NSImageView
感兴趣,这是一个视图对象,使用所需的任何显示属性显示NSImage
模型对象的内容。 如果只想更改图像的显示方式,而不是图像中的实际字节,则将在运行时操作NSImageView
。 您也可以在此处使用NSAffineTransform
,但这并不常见(通常也是不必要的)。
要注意的关键是 NSImageView
继承自NSView
,因此您可以掌握其所有功能。 看看某些方法,例如:
-setFrameSize:
- 可用于更改视图大小,从而更改图像显示比例
-setFrameOrigin:
- 用于更改视图位置,从而更改表观图像位置
再次请注意,这些与图像本身无关,适用于所有可可视图。 你可能想看看像Cocoa Programming for Mac OS X这样的书,让你了解基础知识。 (然后你可以做更多有趣的事情,比如旋转、动画等)