2013-03-25 2 views
1

저는 다중 선택 UICollectionView를 구현하기 시작했습니다. 아래는 "안전한"코드로 간주 될 것입니까? (AccessoryView 대신 BackgroundView라고하는 이유를 가정했기 때문에)? 나는 약간의 노력을 덜고, 배열을 통해 추가 사용을 위해 indexpath에서 선택한 항목을 추적하려고합니다.UICollectionView 셀 : cell.selectedBackgroundView를 앞에 가져 오는 것이 안전할까요?

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
//.... 

cell.selectedBackgroundView = someView_With_A_Checkmark_Image; 
[cell bringSubviewToFront:cell.selectedBackgroundView]; 

//... 
return cell; 

} 

답변

2

안전한가요? 물론 오류는 발생하지 않습니다. backgroundView가 셀의 contentView보다 위에 있으면 contentView의 의미는 무엇입니까 ??. 당신이 컬렉션 뷰에서 항목을 선택하면

Collection 뷰 셀 구조는
enter image description here

, collectionView는 BackgroundViewSelected background view 전환됩니다. 따라서 사용자 정의 셀을 구성 할 때 유효한 뷰를 배경보기 및 선택된 배경보기로 제공하거나 didSelectItem에서 셀의 속성을 변경하여 선택을 구분할 수 있습니다. 그게 나아.

그런 다음 별도의 배열을 사용하여 선택을 추적 할 필요가 없습니다. [self.collectionView indexPathsForSelectedItems]은 언제든지 선택한 항목 경로를 제공합니다.

+0

소리가 좋습니다. 특정 상황에서 콘텐츠보기에 추가하는 대신 내 생각에 이상하게 느껴지는 것이 궁금했습니다. – ceekay

관련 문제