滚动时访问可见的UICollectionReusableViews

时间:2014-10-10 23:41:16

标签: ios objective-c

我尝试使用UICollectionView修改UICollectionViewFlowLayout以在滚动时支持一些视差效果。我可以通过实现类似的内容在UICollectionViewCells上执行此操作:

- (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)以检查它们是否支持相同的视差委托?

1 个答案:

答案 0 :(得分: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]; 
}