2015-01-10 5 views
1

Instagrams 프로필 페이지와 비슷한 collectionView에 표시되는 이미지 배열이 있습니다. 이미지가 선택되면 indexPath.row은 동일한 배열을 사용하는 다음 collectionView로 전달되고 indexPath.row을 전달하면 전체 이미지에 표시 할 이미지를 알 수 있습니다.UICollectionView scrollToItemAtIndexPath 뒤에 수평 스크롤 :

- (void)viewDidLayoutSubviews{ 
[self.view layoutIfNeeded]; 

NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.selectedImage inSection:0]; 
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO]; 

}

이미지가 나타나지만 나는 이미지의 나머지 부분 사이에 가로로 스크롤 할 수 없습니다입니다. 페이징이 활성화되고 각 셀은 화면을 차지할만큼 충분히 큽니다. 위 코드를 주석 처리하면 모든 이미지를 스크롤 할 수 있습니다. 트위터가 인물 이미지를 선택할 때 어떻게 작동하여 x'ing 대신 x'ing 대신에 스크롤하여 개별적으로 각각을 선택할 수 있습니까?

답변

2

저는 컬렉션 뷰 셀이 재사용 될 때마다 viewDidLayoutSubviews이 호출된다고 생각합니다. 그래서 셀을 재사용하려고 할 때, 그 항목으로 다시 스크롤하도록 코드를 실행합니다. 즉, 스크롤보기가 움직이지 않음을 의미합니다. 항목에 대한 스크롤이 한 번만 호출되도록해야한다고 생각합니다.

이것을 테스트하려면 위 코드에서 중단 점을 넣고 수평 스크롤을 시도 할 때 다시 호출되는지 확인하십시오.

+0

와우 ... 이것은 내 문제를 해결했습니다 ... 제 경우에는 메서드가 여러 번 호출하여 collecitonview를 스크롤하지 않도록합니다. 감사 .. –