2010-04-10 8 views
0

내보기에서 하위 레이어로 여러 사용자 지정 레이어를 사용할 때 성능 문제가 발생합니다.다중 CALayer 성능 문제

[self.view.layer addSublayer:myNewSublayer]; 

이 잘 작동 : 프로그램 내 새 레이어를 생성 한 후

는, 내가 좋아하는, 하위 계층으로 추가. 그러나, 내 애플 리케이션을 통해이 일을 할 때 점점 더 천천히 시작합니다. 나는 내보기에 끊임없이 새로운 하위 레이어를 추가하고 있기 때문에 이런 일이 일어날 것이라고 확신한다. 불행하게도이 내 문제가 해결되지 않는

[self.view.layer setContents:nil]; 

: 그래서,이 문제를 해결하기 위해, 내가 좋아하는 추가, 새 하위 레이어 전에 self.view.layer에 이르기까지 모든 것을 제거하기 위해 노력했다.

새 하위 레이어는 하위 레이어로 추가 된 후에 올바르게 출시됩니다. 나는 이것을 계기로 검사했는데 확실히 메모리 누수가 없습니다. 그러나 새로운 서브 레이어를 추가 할 때마다 메모리가 증가한다는 것을 알 수 있습니다.

내보기 레이어에서 모든 하위 레이어를 제거하려면 다른 방법을 찾아야한다고 생각합니다.

도움을 주시면 감사하겠습니다. 미리 감사드립니다.

답변

1

루트 레이어에 하위 레이어를 계속 추가하고 제거하지 않으면 느린 속도가 느려질 수 있습니다. & bloaty. 당신은 하위 레이어를 제거하는 잘못된 방법을 사용하고 있습니다 :

[[self.view.layer sublayers] makeObjectsPerformSelector:@selector(removeFromSuperlayer)]; 

setContents:는 (보통 CGImageRef를 통해) 레이어의 이미지 내용을 설정합니다.