我尝试使用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];
}
是否可以迭代补充视图(UICollectionElementKindSectionHeader
和UICollectionElementKindSectionFooter
)以检查它们是否支持相同的视差委托?
答案 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];
}