2014-03-27 1 views
0

나는 새로운 배경보기를 다음과 같이 새로운 셀이 요청 될 때마다 생성하고 재활용하는 방법 :배경 UICollectionViewCell의보기 나있는 UITableViewCell

-(UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath]; 
    ... 
    cell.backgroundView = [[MyCellBackgroundView alloc] initWithFrame:CGRectZero]; 
    return cell; 
} 

내가 걱정해야에 대해 너무 5 월 인스턴스가 alloc'ed 및 할당 해제중인 ' 에드?

답변

1
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCell" forIndexPath:indexPath]; 

이 코드 줄은 각 셀의 alloc/init과 하위 뷰를 처리합니다. 이 시점에서 메모리 관리가 처리되었습니다.

여전히 골동품 인 경우 - 앱을 실행하는 동안 디버그 탐색기를 열면 CPU 및 메모리 사용량이 표시됩니다.

+0

'backgroundView' 속성은 모든 * call에 nil이므로 * 재활용되지 않습니다 *. alloc과 dealloc이 자주 호출된다는 것을 알 수 있습니다. 많은 메모리 스 래싱처럼 보입니다. – wcochran

+0

왜 사용자 정의 셀을 만들지 않습니까? – Tander

+0

사용자 지정 셀은 문제를 변경하지 않습니다. 사실, 이는 실제로 코드에서하고있는 것입니다. 사용자 지정 셀의 배경을 변경하고 있습니다. – wcochran

관련 문제