2013-04-19 5 views
0

우선, 바보 같은 질문에 대해 미안하지만, 나는 collectionview에 익숙하지 않으며 약간 혼동합니다.UICollectionView에 대한 질의

저는 UICollectionView에서 일하고 있습니다. 내 plist 파일에서 이미지를 전달 중입니다. 6 ~ 8 개의 배열 항목이 있고 모든 배열에는 6 개의 항목 (NSString)이 있습니다. 나는

static NSString *identifier = @"Cell"; 
CollectionViewCell *cell = (CollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath]; 

NSArray *temp = [list objectAtIndex:indexPath.item]; 

UIImage *cellImage; 
cellImage = [UIImage imageNamed:[temp objectAtIndex:2]]; 
cell.imageView.image = cellImage; 

지금, 내가 플래그 1 또는 0을 얻을 때 objectAtIndex:5에 인덱스를 변경하려면 ..이 코드를 사용하고, 그것은 perticular 항목에 대한 있어야합니다.
UIImage *cellImage; 

if (myInt == 1) { 

    cellImage = [UIImage imageNamed:[temp objectAtIndex:2]]; 
} 
else{ 
    cellImage = [UIImage imageNamed:[temp objectAtIndex:5]]; 
} 

cell.imageView.image = cellImage; 

내가이 일을하고있는 경우

다음 중 하나를 내가 index 2 또는 모든 항목에 대한 index 5 얻을. 일부 항목에 대해 index 2을 가져올 수 있으며 플래그에 따라 일부 항목에 대해 index 5을받을 수 있습니까? 또는 그렇게 할 수있는 다른 방법이 있습니까?

모든 의견을 환영합니다. 고맙습니다.

편집 :
내 collectionview에는 연속으로 3 개의 이미지 (항목)가 있습니다. 아이콘을 탭하면 새로운보기로 리디렉션되어 일부 문서를 읽을 수 있습니다. 막대에 해당보기에 완료 단추가 있습니다.이 단추는 플래그 값 (0/1)을 제공합니다. 이제 flag 1을 얻으면 그 경우에 대해서만 collectionview 아이콘을 변경하려고합니다. 하지만 여기,이 코드에 의해 모든 아이콘은 index 5으로 바뀌지 만, index 5의 첫 번째 아이콘과 index 2의 다른 2 아이콘 만 원합니다. 그냥 첫 번째 문서가 검토되었는지 확인하는 것과 같습니다.

죄송합니다.

+0

이제 문제는 무엇입니까? 위의 코드가 작동하지 않습니다 ?? ur 질문을 얻지 않았다 ?? –

+0

작동하지만 특정 품목에는 해당되지 않습니다. 내 질문을 편집하겠습니다. – iUser

답변

1

이 상황에서 myInt를 사용하고 싶지 않습니다. 대신 컬렉션보기 컨트롤러에 배열을 만들어 선택한 항목을 추적하고 싶습니다. 따라서 reviewsDocs (NSMutableArray를 가리킴)라는 속성이 있으면 선택한 셀의 indexPath를 추가합니다.

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 
    [self.reviewedDocs addObject:indexPath]; 
} 

그런 다음 cellForItemAtIndexPath에 : 방법, 당신은 현재의 indexPath가 reviewedDocs 배열의 하나와 일치하는지 여부에 따라 이미지를 선택합니다.

UIImage *cellImage; 

if ([self.reviewedDocs containsObject:indexPath]) { 

    cellImage = [UIImage imageNamed:[temp objectAtIndex:5]]; 
} 
else{ 
    cellImage = [UIImage imageNamed:[temp objectAtIndex:2]]; 
} 

이미지는 콜렉션 뷰 컨트롤러로 돌아올 때까지 변경되지 않으며 다시로드됩니다. myInt 플래그를 사용하고 있는지 확실하지 않지만, 예를 들어 완료 버튼과 취소 버튼이있는 경우 두 작업에 대해 각각 1 또는 0을 반환 할 수 있습니다. 콜렉션 뷰 컨트롤러의 viewDidAppear 메서드에서 myInt가 0이면 리뷰 된 문서에서 마지막 개체를 제거 할 수 있습니다. 이는 사용자가 문서를 검토 한 다음 콜렉션 뷰에서 reloadData를 호출하는 대신 취소 한 것입니다.

관련 문제