2014-04-25 3 views
1

에 강조 표시되지 셀의 배경 색상을 변경 나는이 코드에 도청 셀 배경색을 설정하는 관리 내가 보여 6 셀을 뷰에 표시 한 다음 다른 셀을 표시하기 위해 슬라이드합니다. 일부 셀도 파란색 배경으로 강조 표시됩니다.UICollectionView

2 : 셀 A를 선택하고 배경색을 파란색으로 변경 한 후 B에서 A의 배경색이 다시 흰색으로 변경되지 않습니다. 내가 다시 바꿀 수 있을까?

감사합니다.

답변

0

collectionView:cellForItemAtIndexPath: 방법으로 셀을 올바르게 재설정해야합니다.

if (/* cell is highlighted */) { 
    cell.contentView.backgroundColor = [UIColor blueColor]; 
} else { 
    cell.contentView.backgroundColor = [UIColor whiteColor]; // use whatever is appropriate 
} 

물론 이것은 강조 표시 할 셀을 추적해야합니다.

+0

erm 어떻게 추적해야합니까? – dan

+0

또한 셀 B를 선택하면 셀 A는 여전히 파란색으로 유지됩니다. 흰색 배경으로 되돌리려면 뷰 밖으로 슬라이드해야합니다. – dan

+0

추적 방법은 강조 표시된 셀 하나만 지원하는지 여러 개를 지원하는지에 따라 달라집니다. 싱글 인 경우 셀과 관련된 키를 추적하는 ivar를 추가 할 수 있습니다. 다중 인 경우 데이터 소스의 각 셀에 대한 추가 값을 추가해야합니다. – rmaddy

0

손가락이 셀을 터치하는 동안 파란색 배경 만 강조 표시되도록하려면 didUnhighlightItemAtIndexPath의 색을 다시 흰색으로 변경할 수 있습니다.

- (void)collectionView:(UICollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSLog(@"unhighlighted cell at index path %ld", (long)indexPath.row); 

    UICollectionViewCell* cell = [collectionView cellForItemAtIndexPath:indexPath]; 
    cell.contentView.backgroundColor = [UIColor whiteColor]; 
} 

이 그것을 만드는 그래서 다른 세포가 같은 배경 색상 (문제 1)로 재활용하고 즉시 세포 B (문제 2) 도청 이전에 손가락을 해제 한 후 기본 색으로 돌아갑니다 세포되지 않는다.

자세한 내용은 this question and its answers을 참조하십시오.