2014-10-10 61 views
1

我试图修改UICollectionView使用UICollectionViewFlowLayout来滚动时支持一些视差效果。我能够通过实现像这样做的UICollectionViewCells滚动时访问可见的UICollectionReusableViews

- (void)scrollViewDidScroll:(UIScrollView *)mainScrollView 
{ 
    CGPoint offset = [mainScrollView contentOffset]; 
    for (UIView *cell in [self.mainCollectionView visibleCells]) 
     if ([cell conformsToProtocol:@protocol(KSParallaxCell)]) 
      [((UIView <GSParallaxCell> *)cell) parallaxInScrollView:mainScrollView toX:offset.x toY:offset.y]; 
} 

是否可以遍历的补充意见(UICollectionElementKindSectionHeaderUICollectionElementKindSectionFooter),以检查他们是否支持相同的视差代表?

回答

0

忘记通过子视图循环而不是调用可见单元格的检查明显:

- (void)scrollViewDidScroll:(UIScrollView *)mainScrollView 
{ 
    CGPoint offset = [mainScrollView contentOffset]; 
    for (UIView *cell in self.mainCollectionView.subviews) 
     if ([cell conformsToProtocol:@protocol(KSParallaxCell)]) 
     [((UIView <GSParallaxCell> *)cell) parallaxInScrollView:mainScrollView toX:offset.x toY:offset.y]; 
}