스크롤보기에 포함 된 사용자 정의 (레이어 호스팅) 문서보기를 만들고 있습니다. 루트 레이어에는 동일한 크기의 하위 레이어가 두 개 있습니다. 하나는보기의 내용 용이고 다른 하나는 주 내용 위로 마우스를 가져 가야합니다. 프레임을 2500x2500으로 설정하고 콘텐츠 레이어에 여러 셀을 추가했습니다. 괜찮 았습니다. 오버레이 레이어에 셀 레이어 중 하나의 반투명 클론을 추가하면 전체보기가 잠시 사라지고 '코어 애니메이션 : 표면 2502x2502가 너무 큽니다'라는 로그 메시지가 나타납니다. 이것은 새 레이어와 이벤트 루프의 다음 사이클을 추가하는 사이에 발생하므로 코어 애니메이션이 새 레이어를 렌더링 할 때 추측됩니다."CoreAnimation : 표면이 너무 큽니다."
레이어의 콘텐츠 크기가 OpenGL 텍스처 크기와 관련되어 있음을 알았지 만 프레임이 중요하다고 생각하지 않았습니다. 이 레이어에 아무 것도 그리지 않고 스타일 속성을 설정하지 않고 오프 스크린 하위 레이어를 제거합니다. 내가 실제로 사용하고있는 것은 문서보기의 기하학을 처리하는 것입니다. 이것은 CA 레이어를 적절하게 사용합니까? 그렇지 않은 경우 큰 핵심 애니메이션 기반 문서 뷰를 처리하는 더 나은 방법이 있습니까?
편집 : 나는 다시이 문제를 가지고 큰 부모에게 서브 레이어를 추가하는 방법에 대한 암시 적 애니메이션에 의해 발생했습니다
. 그래서 아래에 제안 된 것 이외에, 당신이 이것에 부딪쳤을 때 확인하는 것이 하나 있습니다.
좋은 제안이지만 Core Animation 악기는 iOS 전용 인 것 같습니다. 예를 들어 레이어에서 메서드를 호출하거나 오프 스크린 렌더링을 트리거하는 어딘가에 속성 목록을 호출하여 오프 스크린 렌더링을 확인하는 방법이 있습니까? (이 문서에서 아무것도 볼 수 없다) –
아, 죄송합니다, 내 두뇌는 임의의 이유로 iOS 모드였습니다. 상위 뷰에 대해 NSView를 사용할 수없는 이유는 무엇입니까? –
그것이 실제로 도움이 될지 확실하지 않다고해야합니다. 필자는 CALayers를 Cocoa에서 사용하기가 매우 어려웠고 가능한 경우 뷰 계층의 잎에만 사용하려고했습니다. –