2012-06-18 2 views
0

Я создал до сих пор приложение, которое позволяет пользователю перетаскивать изображения на NSImageView. Тем не менее, я хочу, чтобы иметь возможность перемещать эти изображения, просто нажимая на любое изображение и удерживая нажатой кнопку мыши, чтобы переместить его местоположение.как перевести и масштабировать NSImage?

Как я могу манипулировать NSImageView для перевода/масштабирования после установки изображений? Это возможно? Я читал о NSAffineTransform, но похоже, что это перемещение изображений перед созданием самого изображения. У меня уже есть изображения на холсте, и вы просто хотите щелкнуть и удерживать изображение и перенести его мышью. Пожалуйста, помогите всем!

ответ

2

Есть две стороны этого.

NSImage является модель объекта, который вы можете отобразить различными способами, сохранить на диск/архив и т.д. Если вы действительно хотите изменить модель (масштабирование, вращение и т.д.), подразумевая постоянное изменение, тогда вы, вероятно, захотите посмотреть на NSAffineTransform, чертеж кварца и т. д.

Но вы, вероятно, не имели в виду это. Вместо этого вас, вероятно, интересует NSImageView, который представляет собой объект вида, отображающий содержимое объекта модели NSImage, используя любые атрибуты отображения. Если вы хотите изменить способ отображения изображения, а не то, что представляют собой фактические байты на изображении, тогда вы будете манипулировать NSImageView во время выполнения. Здесь вы также можете использовать NSAffineTransform, но это несколько необычно (и обычно не нужно).

Главное, чтобы отметить, что NSImageView наследует от NSView, так что у вас есть все силы в вашем распоряжении. Посмотрите на некоторых методах, такие как:

-setFrameSize: - полезную для изменения размера вида, и, таким образом, масштаб отображения изображения

-setFrameOrigin: - полезен для изменения положения вида, и, таким образом, положения очевидны изображениями

Обратите внимание, что они не имеют ничего общего с изображениями и применяются ко всем представлениям Cocoa. Вы можете взглянуть на книгу, такую ​​как Cocoa Programming for Mac OS X, чтобы познакомить вас с основами. (Затем вы можете делать больше интересных вещей, таких как вращение, анимация и т. Д.)

+0

Вот что я сделал, спасибо! –

+0

@ ObjectiveC-InLearning Рад помочь! –

Смежные вопросы