0

これまで、ユーザーが画像を NSImageView にドラッグ アンド ドロップできるアプリケーションを作成しました。ただし、画像をクリックしてマウスボタンを押したままにして、その場所を移動するだけで、これらの画像を移動できるようにしたいと考えています。

画像を設定した後、NSImageView を操作して変換/スケーリングするにはどうすればよいですか? それは可能ですか?NSAffineTransform について読んだことがありますが、画像自体を作成する前に画像を移動しているようです。キャンバスに既に画像があり、画像をクリックして押したままマウスで移動したいだけです。誰か助けてください!

4

1 に答える 1

2

これには2つの側面があります。

NSImageはモデルオブジェクトであり、さまざまな方法で表示したり、ディスク/アーカイブなどに保存したりできます。実際にモデルを変更したい場合(スケーリング、回転など)、永続的な変更を意味します。おそらくNSAffineTransform、クォーツの描画などを見たいと思います。

しかし、あなたはおそらくそれを意味していませんでした。代わりに、必要な表示属性を使用しNSImageViewてモデルオブジェクトのコンテンツを表示するビューオブジェクトであるに興味があるかもしれません。NSImage画像の実際のバイト数ではなく、画像の表示方法のみを変更したい場合は、NSImageView実行時に操作します。ここでも使用できますNSAffineTransformが、あまり一般的ではありません(通常は不要です)。

注意すべき重要な点は、NSImageViewから継承するNSViewことです。そのため、すべての権限を自由に使用できます。次のような特定の方法を見てください。

-setFrameSize:-ビューサイズを変更して、画像の表示スケールを変更するのに便利です

-setFrameOrigin:-ビューの位置、つまり見かけの画像の位置を変更するのに役立ちます

これらは画像自体とは関係がなく、すべてのCocoaビューに適用されることに再度注意してください。基本を理解するために、MacOSX用のCocoaProgrammingのような本をご覧になることをお勧めします。(その後、回転、アニメーションなど、より興味深いことを行うことができます)

于 2012-06-18T22:30:08.000 に答える