2010-12-23 6 views
0

사용자 정의 셀이있는 UITableView가 있습니다. 이 셀에는 각각 OpenGL 드로잉 (그래프 차트)이 들어 있습니다. 테이블을 스크롤하고 셀을 숨기면 셀은 GLViewController 및 GLView와 같은 객체를 파괴하는 프로세스를 시작합니다. 아시다시피 GLView에는이 메서드가 있습니다 : destroyFramebuffer - OpenGL 드로잉을 위해 할당 된 버퍼를 지 웁니다. 테이블을 매우 빠르게 스크롤하려고하면 내 문제가 발생합니다. 버퍼를 지울 수 없거나이 문제를 해결할 수있는 프레임 워크의 문제는 무엇입니까?iOS에서 OpenGl 메모리 관리

답변

1

테이블 셀에 여러 개의 GL 뷰가있는 것은 좋지 않습니다. 각 GL보기는 많은 메모리를 할당하고 빠른 버퍼링 중에 볼 수있는 GL 버퍼를 삭제하는 데 약간의 시간이 걸립니다. 하나의 GL보기 만 사용하도록 응용 프로그램을 다시 디자인해야합니다 (예 : 숨김, 그래프 만들기, UIImage에 이미지 캡처, 테이블 셀에만 표시).

+0

그래프를 그릴 때 애니메이션이 생기고 여러 가지 유형의 그래프가 있기 때문에 재 설계의 아이디어가 실제가 아닙니다. –

+0

다음 아이디어는 스크롤이 멈추거나 감속 된 후에 만 ​​표 셀에 GL보기를 표시하는 것입니다. –