IOS - 粘性 UICollectionView Header(如 Apple App Store)
IOS - Sticky UICollectionView Header (like Apple App Store)
我正在尝试创建一个类似于 App Store 中的 header。当用户向下拖动时,header 保持原位,只有单元格向下滚动。但是当用户向上拖动时,header 和单元格都会向上滚动。
到目前为止,我所做的是将我的 collectionView
背景视图设置为我想贴在顶部的图像,并在图像下方设置 collectionView
的 contentInsets
。这样当用户向下拖动时,图像将留在原地。但是当用户向上拖动时,我的单元格会越过图像(我希望图像与单元格一起向上滚动)。我想我做错了。谢谢。
UIView *back = [UIView new];
UIImageView *backImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 320)];
backImage.image = [UIImage imageWithData:coverData];
[back addSubview:backImage];
self.collectionView.backgroundView = back;
[self.collectionView setContentInset:UIEdgeInsetsMake(300, 0, 0, 0)];
编辑
我使用了 the tutorial from this question 但这与我想要的相反,我不确定如何更改该代码以满足我的需要
好的,我知道了。如果您使用的是从链接问题发布的教程 -
改变
origin.y = MIN(
MAX(
contentOffset.y,
(CGRectGetMinY(firstCellAttrs.frame) - headerHeight)
),
(CGRectGetMaxY(lastCellAttrs.frame) - headerHeight)
);
致此
origin.y = MIN(
contentOffset.y,
(CGRectGetMinY(firstCellAttrs.frame) - headerHeight)
);
我正在尝试创建一个类似于 App Store 中的 header。当用户向下拖动时,header 保持原位,只有单元格向下滚动。但是当用户向上拖动时,header 和单元格都会向上滚动。
到目前为止,我所做的是将我的 collectionView
背景视图设置为我想贴在顶部的图像,并在图像下方设置 collectionView
的 contentInsets
。这样当用户向下拖动时,图像将留在原地。但是当用户向上拖动时,我的单元格会越过图像(我希望图像与单元格一起向上滚动)。我想我做错了。谢谢。
UIView *back = [UIView new];
UIImageView *backImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 320)];
backImage.image = [UIImage imageWithData:coverData];
[back addSubview:backImage];
self.collectionView.backgroundView = back;
[self.collectionView setContentInset:UIEdgeInsetsMake(300, 0, 0, 0)];
编辑 我使用了 the tutorial from this question 但这与我想要的相反,我不确定如何更改该代码以满足我的需要
好的,我知道了。如果您使用的是从链接问题发布的教程 -
改变
origin.y = MIN(
MAX(
contentOffset.y,
(CGRectGetMinY(firstCellAttrs.frame) - headerHeight)
),
(CGRectGetMaxY(lastCellAttrs.frame) - headerHeight)
);
致此
origin.y = MIN(
contentOffset.y,
(CGRectGetMinY(firstCellAttrs.frame) - headerHeight)
);