2009-07-29 3 views
3

매우 간단한 CA 데모가 있습니다. 이미지 파일의 내용으로 레이어를 만들고 이미지를 표시합니다. 창을 클릭하면 암시 적 애니메이션을 사용하여 이미지를 마우스 포인트로 부드럽게 이동합니다. 이것은 정상적으로 작동하며 완벽하게 매끄럽게 실행됩니다. 그러나 창이 커질수록 부드러움이 줄어 듭니다. 화면 크기의 약 75 % 미만에서는 허용됩니다. 최대화 된 창 또는 전체 화면 모드에서는 매우 거칠고 불규칙합니다.큰 창으로 CoreAnimation 저키

Intel Mac Mini에서 OSX 10.5.7을 실행 중입니다. 그것은 인텔 GMA950 GPU를 가지고 있습니다. 내 화면은 1920 x 1200입니다.

나는 drawRect 메소드가 전혀 없습니다. 암묵적인 애니메이션을 사용하여 CALayer의 position 속성을 설정하면 모든 일이 발생합니다.

하드웨어가 고장난 것 같습니까?

닐 베일리스

답변

0

하드웨어는 잘하고 할 수 - 구현이 부족하다.

위치 속성에 애니메이션을 적용하거나 터치 할 수 없습니다. 이 속성은 레이어가 지원되는 경우 뷰에 의해 처리됩니다. 너 말고. 그리고 여러 차례에 걸쳐 다시 계산되었습니다. 따라서 당신이 움직이는 것을 시작하고 그 재산을 바꾸면 문제가 될 것입니다. 적어도 애플에 따른 ... 여기 발췌

애플에 따르면, - OS X의 층 백업 뷰를 변경 애니메이션> 을는 뷰 자체의 인터페이스를 사용하는 것이 가장 좋다. 혹시 레이어 기반 NSView 객체 중 하나에 첨부 된 레이어를 직접 수정하지 않아야합니다. AppKit은 해당 레이어 객체를 생성 및 구성하고 응용 프로그램이 실행되는 동안 레이어 객체를 관리합니다. 레이어를 수정하면 뷰 객체와 동기화되지 않을 수 있으며 예기치 않은 결과가 발생할 수 있습니다. 레이어 백업 뷰를 들어, 코드는 레이어 객체의 다음 속성을 수정할 수 없습니다 절대적으로해야합니다 anchorPoint • 경계 • • compositingFilter • 필터 • 프레임 • geometryFlipped 숨겨진 • • 위치 •와 shadowColor • shadowOffset • shadowOpacity • shadowRadius • 변환

관련 문제