我创建了一个具有自定义布局的UICollection,以允许垂直和水平滚动。它是由相等部分和每个部分中的项目组成的网格(即10 x 10、20 x 20等)。我希望能够在视图中放置两个标头,一个标头位于顶部,另一个标头位于左侧。我还没有找到在UICollection本身中执行此操作的方法。因此,我在左侧设置了UICollection,在顶部设置了另一个。但是,当用户向左和向右和/或向上和向下滚动网格时,我希望这两个集合能够反映这些运动。

所以,我的问题是:有没有办法将主UICollection的水平运动镜像到顶部UICollection,然后将主UICollection的垂直运动镜像到侧面UICollection?

谢谢!

最佳答案

UICollectionViewUIScrollView的子类。它向其委托发送 UIScrollViewDelegate protocol中定义的所有消息。

您要回复的消息是 scrollViewDidScroll: 。当您的主要收款视图发送此消息时,您想通过获取其contentOffset并将其偏移量适当地应用于您的保证金收款视图来对此作出响应。

// Implement this in your main collection view's delegate.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    [self synchronizeCollectionViewContentOffsets];
}

- (void)synchronizeCollectionViewContentOffsets {
    CGPoint offset = self.mainCollectionView.contentOffset;
    self.leftMarginView.contentOffset = CGPointMake(0, offset.y);
    self.topMarginView.contentOffset = CGPointMake(offset.x, 0);
}

10-05 20:24
查看更多