2012-06-18 139 views
0

我已經構建了一個允許用戶將圖像拖放到NSImageView上的應用程序。不過,我希望能夠通過單擊任何圖像並按住鼠標按鈕移動它的位置來移動這些圖像。如何翻譯和縮放NSImage?

如何在操作NSImageView以在設置圖像後進行平移/縮放?那可能嗎?我已經閱讀了NSAffineTransform,但似乎是在創建圖像之前移動圖像。我已經在畫布上放置了圖像,只需單擊並按住圖像並使用鼠標移動圖像即可。請幫助任何人!

回答

2

這有兩個方面。

NSImage是模型對象,你可能想以不同的方式顯示,保存到磁盤/存檔等,如果你想真正改變模型(縮放,旋轉等),這意味着一個永久的變化,那麼你可能會想要看看NSAffineTransform,石英素描等。

但你可能並不是這個意思。相反,您可能對NSImageView感興趣,它是一個視圖對象,使用任何所需的顯示屬性來顯示NSImage模型對象的內容。如果您只想更改圖像的顯示方式,而不是圖像中的實際字節數,那麼您將在運行時操作NSImageView。你也可以在這裏使用NSAffineTransform,但它有些不常見(通常也是不必要的)。

要注意的關鍵是NSImageView繼承NSView,所以你有它的所有權力在您的處置。看一看某些方法中,如:

-setFrameSize: - 有用用於改變視圖的大小,並且因此圖像顯示比例

​​- 用於改變視圖位置是有用的,並且因此明顯的圖像位置

再次請注意,這些與圖像本身無關,並且適用於所有Cocoa視圖。你可能想看看像Cocoa Programming for Mac OS X這樣的書,讓你瞭解基本知識。 (你可以做更多有趣的事情,如旋轉,動畫等)

+0

這就是我所做的,謝謝! –

+0

@ ObjectiveC-InLearning很高興爲您服務! –