NSView 서브 클래스에서 사용자 정의 드로잉을하고 싶습니다. 어디에서 시작해야합니까?코코아 드로잉 시작
답변
자렛이 언급 한대로 Apple docs은 시작하기에 좋은 장소입니다. 그러나 염두에 두어야 할 사항은 다음과 같습니다.
뷰와 함께 사용되는 기본 좌표계는 원점이 뷰의 왼쪽 하단 모서리에있는 Cartesian coordinate system입니다. 대부분의 자주 기원 뷰의 왼쪽 상단 모서리에 있어야 할 당신이 YES
반환하는 isFlipped:
방법 (NO
를 반환 기본 구현)를 오버라이드 (override) 어디 그래서 이것이다 : 이것은 "플립"
- (BOOL)isFlipped
{
return YES;
}
을 좌표 시스템을 사용하여 수직 뒤집기가 발생한 후 원점이 왼쪽 상단 모서리에 오도록합니다. 이로 인해 일부 드로잉 위치 계산이 더 쉬워 질 수 있습니다. (설정 및 색상을 사용하기위한 NSColor
클래스와 함께 NSBezierPath
클래스 메소드 fillRect:
사용) 기본 사각형을 작성
- :
당신은 아마 시작하는 것이 좋습니다 주요 것들
은 다음과 같은 것들입니다. - 이미지 작업 (
NSImage
클래스 및이 클래스가 제공하는 드로잉 메서드 사용). - 경로 및 기타 모양 (
NSBezierPath
클래스 사용)을 그릴 수있는 경로.
어떤 시점에서 Graphics Contexts을 살펴보고 후속 드로잉 작업에 사용되는 특성 (예 : 현재 색, 그림자 등)을 설정하는 작업을 수행하는 것이 좋습니다.
아마 즉각적인 문제는 아니지만, 어느 시점에서 View Programming Guide for Cocoa의 Optimizing View Drawing 섹션을 살펴 보는 것이 좋습니다. 드로잉 작업이 빨라야하며, 드로잉의 성능 측면에 얼마나 많은 고려가 필요한지, 드로잉 작업의 일부분을 다시 그리는 등 드로잉을보다 효율적으로 수행 할 수있는 기본적인 작업이있을 때가 종종 있습니다. 전체가 아니라 실제로 변경된 뷰.
at the beginning을 시작해야합니다.
Apple의 Introduction to Cocoa Drawing Guide이 가장 좋습니다. 많은 예제가 있습니다.
- 1. 코코아 : NSView 드로잉 rect
- 2. 코코아 드로잉, 특별 이벤트에 "잠금"마우스
- 3. 코코아 앱 시스템 다시 시작
- 4. 포크 코코아 프로세스 및 다시 시작 코코아. 방법?
- 5. 응용 프로그램 시작 전 코코아 이벤트
- 6. 응용 프로그램 시작 코코아 전에 버전 확인
- 7. 드로잉 응용 프로그램에서 계속 드로잉
- 8. 런타임 드로잉
- 9. 안드로이드 드로잉
- 10. 스레드 드로잉
- 11. Android 드로잉
- 12. 드로잉 문제
- 13. 드로잉 opencv?
- 14. 멀티 윈도우 코코아 프로그램 만들기 - 절차 시작 제안?
- 15. 코코아
- 16. 드로잉 응용 프로그램의 스크린 샷 만들기 + 2D 모양의 드로잉 개요
- 17. 코코아/아이폰 : backgroundColor가 불투명 특성 코코아 구체적 아이폰 SDK에서
- 18. OpenGl 스타 드로잉
- 19. iPhone 드로잉 브라우저에서
- 20. BufferedImage를 통한 드로잉. repaint()
- 21. 사용자 정의 MKOverlay 드로잉
- 22. CGImageCreateWithJPEGDataProvider를 사용한 드로잉 성능?
- 23. cocos2d의 동적 드로잉?
- 24. 캔버스 html5 컨텍스트로 드로잉
- 25. 드로잉 NSImage 타일
- 26. 픽셀 드로잉 알고리즘
- 27. JApplet 드로잉 모양
- 28. 빠른 픽셀 드로잉 라이브러리
- 29. UIView 드로잉 문제
- 30. 안드로이드에서 Fingertip 드로잉 어플리케이션?
정말 고마워요! – nanochrome
"가장 자주"? 나는 다른 것을 구한다. 내가 그린 대부분의 사용자 정의보기에서 unflipped 잘 작동했습니다. 그리고 나는 "일부 드로잉 포지션 계산을 더 쉽게"한다고 산다. 그것이 할 수있는 모든 것은 빼기 (subtraction) 또는 양수 (positive number)를 음수로 바꾸는 것입니다. –
개인적인 견해로는 추측됩니다. 그러나 대개 뒤집힌 견해에서 일하는 것이 더 쉽습니다. –