2016-10-07 2 views
0

컬렉션보기가 있고 컬렉션보기 셀 안에 일부 그림을 표시 할 scrollView가 있습니다. 다음 셀 내부의 ScrollView에서 UICollectionViewCell의 인덱스에 액세스하기

는 내 -collectionView:cellForItemAtIndexPath있어서 안에있는 ScrollView를 스토리 내 collectionviewcell 안에있는 ScrollView를 넣고 초기화 :

UIScrollView *scrollView = [cell viewWithTag:20]; 

scrollView.delegate = self; 

[scrollView setContentSize:CGSizeMake((cell.frame.size.width*images.count), scrollView.frame.size.height)]; 

scrollView.userInteractionEnabled = NO; 
[cell addGestureRecognizer:imagesScrollView.panGestureRecognizer]; 

뷰가 처음로드 될 때 images 배열에서 첫 번째 이미지가로드되어야하며 나머지 이미지는 사용자가 스크롤 뷰를 스크롤 할 때 -scrollViewDidScroll 메서드에서 동적으로로드해야합니다. 그러나 이러한 이미지는 내 scrollView 거짓말을 collectionviewcell 인덱스에 따라 달라집니다.

-scrollViewDidScroll 메서드에서 collectionviewcell 인덱스를 어떻게 액세스 할 수 있습니까?

또한이 방법은 내가하려는 일을 성취 할 수있는 방법처럼 보입니까, 아니면 UICollectionViewCell을 서브 클래 싱해야합니까?

답변

0

서브 클래 싱은 솔루션 중 하나 일 수 있지만 서브 뷰에서도 UICollectionViewCellindexPath을 얻을 수 있습니다. 다음 코드는 여러분의 필요에 도움이 될 것입니다. scrollViewDidScroll: 방법에 사용하십시오.

UIView *superview = scrollView; 

while (![superview isKindOfClass:[UICollectionViewCell class]]) { 

    superview = superview.superview; 
} 

UICollectionViewCell *cell = (UICollectionViewCell *)superview; 
NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell]; 

NSLog(@"IndexPath: %@", indexPath); 

이 viewController의 다른 위치에서 scrollView를 사용하고 있지 않은지 확인하십시오.

+0

이것은 내가 찾고있는 것입니다. 비슷한 일을하려고했지만'superview'를'UICollectionViewCell'에 캐스트하지 않고 계속 NSInvalidArgumentException을 얻었습니다. 이걸 생각해야 했어. 감사합니다. – snagpal

관련 문제