2014-09-22 3 views
0

셀을 선택하면 발급 많은 셀이 선택됩니다 셀을 선택하면 셀의 배경이 주황색으로 바뀝니다. 디자인을위한 xib 파일로 사용자 정의 셀을 만듭니다 (아주 간단한 것). 있는 viewDidLoad에서 사용자 정의 셀 클래스를 선언 - :UICollectionView : 나는 단지 하나의 내가 문제를 직면 시간의 걸릴 많이하지만, 문제를 알아낼 수 없습니다

[self.collectionView registerClass:[MyCustomCell class] forCellWithReuseIdentifier:@"MyCell"];` 
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
MyCustomCell * myCell = (MyCustomCell*)[cv dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath]; 
myCell.lable.text = [arrayNumber objectAtIndex:indexPath.item]; 
return myCell; 
} 

을 선택한 경우 :

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 
// Get the cellForItemAtIndexPath and set the background coler of cell to orange 
}` 
그리고 일반적으로 많은 사람들이 같은 몇 가지 단계와 함께했던 내 DemoUICVViewController.m 파일에 내 UICollectionView에서이 셀을로드

섹션 반환 수 1, 섹션 반환 항목 수 10

UICollectionView의 모든 셀이 올바르게 표시됩니다. 그러나 셀을 선택하기 위해 탭하면 오렌지색뿐 아니라 다른 셀도 예를 들어 셀 5와 셀 9처럼 주황색으로 바뀝니다. didSelectItemAtIndexPath은 한 번만 호출되고 오른쪽 인덱스에서는 한 번만 호출됩니다. 어떤 다른 세포들 또한 오렌지색 일 때 아주 이상합니다. 문제가 셀 식별자의 재사용성에 대한 것인지 확신 할 수 없지만 다른 사람이 조언을 해줄 수 있습니까?

은 여기 예에 대한 사진을 첨부 : Image describes

+1

이것은 셀 재사용 때문입니다. 그래서 그것에 대해 많은 답변이 있습니다, 그래서 몇 가지 검색 할 수 있습니다. – rdelmar

+0

@rdelmar : 검색했지만 여전히 명확한 아이디어를 찾지 못했습니다. 왜 다른 셀에 오렌지가 나타나는 지요. 한 가지 유사한 질문이 있지만 명확한 대답은 없습니다. http://stackoverflow.com/questions/25446070/add-checkmark-image -in-cell-in-collectionview-issue-ios – SuzSky

+0

하나의 클래스 (MyCustomCell)를 등록하고 있지만 대기열에서 제외 된 셀을 다른 클래스 (myCell)로 캐스팅 한 것처럼 보입니다. 또한 등록 된 재사용 식별자는 MyCell이지만 등록 해제시에는 myCell입니다. 이 오타가 귀하의 질문이나 실제 코드에 있습니까? – pbasdf

답변

1

마지막으로 내가 해결하는 근본 원인을 발견 ...

if(myCell.selected) 
    // set background of cell to orange; 
else 
    // set white background; 

collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 

{ 

에 확인이 줄을 추가합니다. .. }

관련 문제