2012-03-30 6 views
2

Mac OS X 도킹과 같은 팬 뷰 (예 : 다운로드 및 문서 폴더)를 코코아를 사용하여 구현하려고합니다.팬 뷰 구현 - 코코아

현재 투명 윈도우의 내용보기에 버튼을 추가하고 NSViewAnimation (그룹 애니메이션)을 사용하여 버튼의 프레임에 애니메이션을 적용하고 있습니다. 그러나 애니메이션은 예상만큼 매끄럽지 않습니다.

이것을 구현하는 다른 최적화 된 방법이 있습니까?

답변

2

이 경우 Core Animation을 사용해야합니다. 전체 애니메이션을 포함 할만큼 충분히 큰 투명 뷰/창을 만들어야합니다. 그런 다음 CALayer 개체를 사용하여 실제 애니메이션을 수행해야합니다.

Core Animation 레이어는 본질적으로 OpenGL 표면 주위의 고수준 경량 래퍼이며 레이어 렌더링은 GPU에 의해 수행되어 NSViewAnimation과 같은 CPU 관리 애니메이션보다 훨씬 뛰어난 성능을 제공합니다.

코어 애니메이션 레이어는 가볍기 때문에 이벤트 처리 기능이 내장되어 있지 않으므로보기 /보기 컨트롤러에서 모든 마우스 추적을 수행해야합니다.

다른 옵션은 레이어 지원 뷰 (자체적으로 CALayer)를 사용하고 애니메이터 프록시를 사용하여 버튼의 위치를 ​​애니메이션으로 표시합니다. 이것은 원하는 것을 달성하기에 충분할 수 있으며 버튼이 여전히 가득 차 있기 때문에 NSButton 객체에는 여전히 모든 NSView 이벤트 처리가 있습니다.

이러한 모든 기술이 어떻게 작동하는지 더 잘 이해하려면 Animation Overview을 읽어야합니다.