Mac OS X 도킹과 같은 팬 뷰 (예 : 다운로드 및 문서 폴더)를 코코아를 사용하여 구현하려고합니다.팬 뷰 구현 - 코코아
현재 투명 윈도우의 내용보기에 버튼을 추가하고 NSViewAnimation
(그룹 애니메이션)을 사용하여 버튼의 프레임에 애니메이션을 적용하고 있습니다. 그러나 애니메이션은 예상만큼 매끄럽지 않습니다.
이것을 구현하는 다른 최적화 된 방법이 있습니까?
Mac OS X 도킹과 같은 팬 뷰 (예 : 다운로드 및 문서 폴더)를 코코아를 사용하여 구현하려고합니다.팬 뷰 구현 - 코코아
현재 투명 윈도우의 내용보기에 버튼을 추가하고 NSViewAnimation
(그룹 애니메이션)을 사용하여 버튼의 프레임에 애니메이션을 적용하고 있습니다. 그러나 애니메이션은 예상만큼 매끄럽지 않습니다.
이것을 구현하는 다른 최적화 된 방법이 있습니까?
이 경우 Core Animation을 사용해야합니다. 전체 애니메이션을 포함 할만큼 충분히 큰 투명 뷰/창을 만들어야합니다. 그런 다음 CALayer
개체를 사용하여 실제 애니메이션을 수행해야합니다.
Core Animation 레이어는 본질적으로 OpenGL 표면 주위의 고수준 경량 래퍼이며 레이어 렌더링은 GPU에 의해 수행되어 NSViewAnimation
과 같은 CPU 관리 애니메이션보다 훨씬 뛰어난 성능을 제공합니다.
코어 애니메이션 레이어는 가볍기 때문에 이벤트 처리 기능이 내장되어 있지 않으므로보기 /보기 컨트롤러에서 모든 마우스 추적을 수행해야합니다.
다른 옵션은 레이어 지원 뷰 (자체적으로 CALayer
)를 사용하고 애니메이터 프록시를 사용하여 버튼의 위치를 애니메이션으로 표시합니다. 이것은 원하는 것을 달성하기에 충분할 수 있으며 버튼이 여전히 가득 차 있기 때문에 NSButton
객체에는 여전히 모든 NSView
이벤트 처리가 있습니다.
이러한 모든 기술이 어떻게 작동하는지 더 잘 이해하려면 Animation Overview을 읽어야합니다.