문제

핵심 애니메이션을 사용하는 표범을위한 스크린 세이버를 만들었습니다. 지나치게 복잡한 일을하지 않습니다. Calayers 및 CatextLayers의 트리를 사용하여 다음 구조에서 "테이블"을 생성합니다.

- root
  › maincontainer
    › subcontainer
      › row [multiple]
        › cell [multiple]
          › text layer

최대 50 명의 Calayers가 화면에 한 번에 렌더링됩니다.

"테이블"을 구축 한 후에는 Cabasicanimation을 사용하여 "하위 컨테이너"를 애니메이션하는 것을 추가합니다. 다시 말하지만, 나는 멋진 일을하지 않습니다 - 단순한 페이드 인 단지.

문제는 애니메이션이 발생하는 동안 괴로운 시청합니다. 4GB의 RAM이있는 3.06GHz IMAC 인 내 개발 기계에 육포이며 점진적인 변화를 나타내지 않고 애니메이션을 10 단계로 자르는 것 같습니다.

PPC MAC-MINI에서 스크린 세이버가 대상이되는 것은 악화됩니다. 애니메이션 (0% 불투명도)에서 반쯤 (50%)까지 애니메이션을 재생하는 것을 거부합니다.

저는 대상을 처음 접하는 것이 비교적 처음이며 내 경험은 쓰레기 수집 된 환경을 사용하는 것을 기반으로하지만 스크린 세이버가 그러한 문제를 일으키기 시작하는 시점에서 충분한 기억을 유출한다고 믿을 수는 없습니다.

또한 하드웨어에 문제가되지 않는다고 확신합니다. 코어 애니메이션을 사용하는 내장 스크린 사버를 테스트하고 비교를 위해 몇 가지 무료 CA 기반을 다운로드했으며 두 기계에서 문제없이 실행됩니다.

Screensavers에서 CA를 사용하거나 해당 문제에 대해 CA를 사용하는 것과 관련하여 Google에서 정보가 매우 얇으며 스크린 세이버 프로파일 링/문제에 대한 조언/튜토리얼은 존재하지 않는 것 같습니다. 따라서 커뮤니티가 제공 할 수있는 도움은 잘 환영받을 것입니다!

--- 업데이트 ---

암시 적 애니메이션이 물건을 조금 부드럽게하는 데 도움이되는 것처럼 보입니다. 여전히 육포하지만 내 솔루션에서와 같이 명백한 애니메이션으로 모든 것을 애니메이션하려는 것만 큼 나쁘지는 않습니다.

도움이 되었습니까?

해결책

스크린 세이버에는별로 특별하지 않습니다. 나는 당신이 시작했다고 생각합니다 핵심 애니메이션 프로그래밍 안내서? 악기를 통해 실행하면 시간이 너무 많은 곳에 대한 많은 정보가 제공됩니다.

페이드 인을 수행하는 데 사용하는 코드가 유용합니다. 당신이 묘사 한 것에 대해, 당신은 카바 시카 이화가 필요하지 않습니다. 레이어의 애니메이션 속성을 설정할 수 있으며 기본적으로 애니메이션을 설정할 수 있습니다. 당신이 읽었는지 확인하십시오 암시 적 애니메이션. 그 페이지의 나머지 부분도 아마도 사용될 것입니다.

Coreanimation에서의 대부분의 직업은 길을 벗어나고 있습니다. 나는 일반적으로 그것이 무엇을하고 있는지 알고 있으며, 대부분의 문제는 두 번째 추측에서 너무 많이 말하려고 노력하는 것까지 비롯됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top