2013-04-27 4 views
4

내 iOS 앱에 UICollectionView를 구현하고 있습니다. 나는 각 셀이 화면의 너비이므로 가로로 스크롤 할 때 보이는 셀 위로 잠그고 화면의 중앙으로 옮길 수 있기를 바란다. 코드는 내가 첫 번째 셀에서만 작동합니다. 사용자가 볼 수있는 모든 셀에서이 작업을 수행하는 방법을 이해하지 못합니다.UICollectionView 가로로 스크롤

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 
    int index = 0; 
    for (TextCell * t in [_tabBarCollectionView visibleCells]) { 
     if ((t.center.x>0)&&(t.center.x<[[UIScreen mainScreen]bounds].size.width)) { 
      [_tabBarCollectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES]; 
      break; 
     } 
     index++; 
    } 

} 

답변

4

콜렉션보기에서 페이징을 켜면 그 효과가 있습니다. 컬렉션이 추가 된 xib 파일이나 스토리 보드로 이동하여 속성 아래에서 페이징을 사용 설정합니다.

+0

괜찮 으면 좋겠지 만 색인이 표시되는 것을 어떻게 감지합니까? – BDGapps

+0

스크롤 뷰에서이 메서드를 호출하면 페이징이 발생하고 셀 크기가 화면이라고 표시되면 한 위치 만 반환됩니다. - (NSArray *) indexPathsForVisibleItems 편집 : [_tabBarCollectionView indexPathsForVisibleItems]; –

+0

ok하지만 2 collectionViews 그래서 어떻게 어떤 컬렉션보기 그것에 대해 얘기하고 감지 할 수 – BDGapps

관련 문제