2012-06-18 7 views
0

나는 지금까지 사용자가 이미지를 NSImageView로 드래그 앤 드롭 할 수있는 응용 프로그램을 만들었습니다. 그러나, 단순히 이미지를 클릭하고 마우스 버튼을 누른 상태로 이미지를 이동하여 위치를 이동할 수 있기를 원합니다.NSImage를 번역하고 스케일하는 방법은 무엇입니까?

이미지를 설정 한 후 NSImageView를 변환/비율 조정하려면 어떻게해야합니까? 그게 가능하니? NSAffineTransform에 대해 읽었지만 이미지 자체를 만들기 전에 이미지를 움직이는 것처럼 보입니다. 이미 캔버스에 이미지가 있고 단순히 이미지를 클릭하여 잡고 마우스로 옮기고 싶습니다. 누구든지 도와주세요!

답변

2

두 가지면이 있습니다.

NSImage

는 의미는 (, 회전 등을 스케일링), 다른 방법으로 표시 실제로 모델을 변경하려는 경우 등 디스크/아카이브에 저장 할 수 있습니다 모델 객체이며, 영구적 인 변경이라면 아마도 NSAffineTransform, 석영 도면 등을보고 싶을 것입니다.

아마도 그런 뜻은 아닙니다. 그 대신에 어떤 디스플레이 속성이든 사용하여 NSImage 모델 객체의 내용을 표시하는 뷰 객체 인 NSImageView에 관심이있을 것입니다. 이미지의 실제 바이트가 아닌 이미지 표시 방법 만 변경하려는 경우 실행시 NSImageView을 조작하게됩니다. 여기에도 NSAffineTransform을 사용할 수는 있지만 일반적이지는 않습니다.

중요한 점은 NSImageViewNSView에서 상속된다는 점입니다. 따라서 모든 기능을 원하는대로 사용할 수 있습니다. 뷰의 크기를 변경하는 데 유용하고, 따라서 화상 표시 스케일

-setFrameOrigin: - - 뷰 위치를 변경하는 데 유용하고, 따라서 겉보기 상 위치

-setFrameSize: : 같은 특정 방법에서보세요

이미지 자체와는 아무 관련이 없으며 모든 코코아보기에 적용된다는 점에 유의하십시오. 당신은 기초를 넘어서기 위해서 Cocoa Programming for Mac OS X과 같은 책을 보길 원할 것입니다. (회전, 애니메이션 등 더 재미있는 일을 할 수 있습니다.)

+0

그게 내가 한 짓이야, 고마워! –

+0

@ ObjectiveC-InLearning 도움이되기를 기쁘게 생각합니다! –

관련 문제