2014-01-15 2 views
2

저는 간단히 UICollectionView을 실행하여 셀을 선택하고 선택 사항을 저장할 수 있도록했습니다. 하지만 그거 알아? 나는 문제가있다!스크롤 할 때 UICollectionView 선택을 잃었습니다.

선택한 셀을 화면 밖으로 스크롤 한 후 다시 켜면 선택이 취소됩니다. 표면은 아주 간단합니다. 이걸 어떻게 막을 수 있니?

셀 재사용과 관련이 있습니까? 여기 내 코드는 다음과 같습니다.

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *cellIdentifier = @"AircraftConfigurationCell"; 
    SLAircraftConfigurationCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]; 

    //Customise cell... 

    return cell; 
} 
+0

내 게시판을 살펴보세요. :) – Pavan

답변

0

데이터 모델을 포함하는 배열에서 가능한 데이터 소스가 있습니까?

그렇다면 훌륭한 시작으로 시간을 할애하여이 선택 사항을 간헐적으로 처리 할 수 ​​있습니다! 데이터 모델 .h 파일에서

propertyproperty (nonatomic, retain) BOOL selectedState;과 같이를 작성하고 .m 파일에 데이터 객체의 init 메소드에 FALSEselectedState를 초기화.

UICollectionView의 didSelect 메서드에서 작업이 완료되면 dataObject의 selectedState을 해당 셀/항목 인덱스와 연결된 YES으로 설정합니다.

마지막으로 cellForItemAtIndexPath 메소드에서 selectedState 속성에 대해 cellItem을 설정하려는 dataModel 인스턴스를 확인하십시오. '아니오'로 설정된 경우 selectionStyle을 none으로 설정하고, 그렇지 않으면 yes로 설정하십시오.

이전에는 스크롤 할 때 선택이 손실되기 전에 문제가 있었지만 지금은 관리되고 결과는 영구적입니다.

관련 문제