/ 记录indexPath
@property(nonatomic, assign)NSIndexPath *indexPath;
// topCollectionView item的起始位置
- (void)topCollectionViewPlay{
self.indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
// 红线
self.topView = [[UIView alloc] initWithFrame:CGRectMake(15, 47, 60, 3)];
self.topView.backgroundColor = [UIColor redColor];
[self.topCollectionView addSubview:self.topView];
}
// cell方法
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.topCollectionView == collectionView) {
FXHTopCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"top" forIndexPath:indexPath];
FXHPresentSayModel *presentSayModel = self.topArr[indexPath.row];
cell.topLabel.text = presentSayModel.name;
// 判断是否高亮
if (self.indexPath == indexPath) {
cell.topLabel.font = [UIFont systemFontOfSize:20];
cell.topLabel.textColor = [UIColor redColor];
}else{
cell.topLabel.font = [UIFont systemFontOfSize:17];
cell.topLabel.textColor = [UIColor blackColor];
}
return cell;
}
// collectionview的点击方法
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.topCollectionView == collectionView) {
FXHTopCollectionViewCell *cell = (FXHTopCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
[self collectionView:self.topCollectionView didDeselectItemAtIndexPath:self.indexPath];
cell.topLabel.font = [UIFont systemFontOfSize:20];
cell.topLabel.textColor = [UIColor redColor];
// 红线
self.topView.frame = CGRectMake(70 * indexPath.row + 15, 47, 60, 3);
self.indexPath = indexPath;
// 点击item滑动collectionview
self.backCollectionView.contentOffset = CGPointMake(self.view.frame.size.width * indexPath.row, 0);
}
}
// 选中状态
- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
// 取消状态
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
FXHTopCollectionViewCell *cell = (FXHTopCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
cell.topLabel.font = [UIFont systemFontOfSize:17];
cell.topLabel.textColor = [UIColor blackColor];
}
// 滑动结束就执行的方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSInteger a = self.backCollectionView.contentOffset.x / WIDTH;
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:a inSection:0];
if (self.backCollectionView == scrollView) {
if (a > 2 && a < 17) {
self.topCollectionView.contentOffset = CGPointMake(70 * (a - 2), 0);
}else if (a < 1){
self.topCollectionView.contentOffset = CGPointZero;
}
}
// topview跟着backcollectionview滑动而滑动
self.topView.frame = CGRectMake(70 * a + 15, 47, 60, 3);
[self collectionView:self.topCollectionView shouldSelectItemAtIndexPath:newIndexPath];
[self collectionView:self.topCollectionView didDeselectItemAtIndexPath:self.indexPath];
[self collectionView:self.topCollectionView didSelectItemAtIndexPath:newIndexPath];
self.indexPath = newIndexPath;
}
@property(nonatomic, assign)NSIndexPath *indexPath;
// topCollectionView item的起始位置
- (void)topCollectionViewPlay{
self.indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
// 红线
self.topView = [[UIView alloc] initWithFrame:CGRectMake(15, 47, 60, 3)];
self.topView.backgroundColor = [UIColor redColor];
[self.topCollectionView addSubview:self.topView];
}
// cell方法
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.topCollectionView == collectionView) {
FXHTopCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"top" forIndexPath:indexPath];
FXHPresentSayModel *presentSayModel = self.topArr[indexPath.row];
cell.topLabel.text = presentSayModel.name;
// 判断是否高亮
if (self.indexPath == indexPath) {
cell.topLabel.font = [UIFont systemFontOfSize:20];
cell.topLabel.textColor = [UIColor redColor];
}else{
cell.topLabel.font = [UIFont systemFontOfSize:17];
cell.topLabel.textColor = [UIColor blackColor];
}
return cell;
}
// collectionview的点击方法
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
if(self.topCollectionView == collectionView) {
FXHTopCollectionViewCell *cell = (FXHTopCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
[self collectionView:self.topCollectionView didDeselectItemAtIndexPath:self.indexPath];
cell.topLabel.font = [UIFont systemFontOfSize:20];
cell.topLabel.textColor = [UIColor redColor];
// 红线
self.topView.frame = CGRectMake(70 * indexPath.row + 15, 47, 60, 3);
self.indexPath = indexPath;
// 点击item滑动collectionview
self.backCollectionView.contentOffset = CGPointMake(self.view.frame.size.width * indexPath.row, 0);
}
}
// 选中状态
- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
// 取消状态
- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
FXHTopCollectionViewCell *cell = (FXHTopCollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];
cell.topLabel.font = [UIFont systemFontOfSize:17];
cell.topLabel.textColor = [UIColor blackColor];
}
// 滑动结束就执行的方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSInteger a = self.backCollectionView.contentOffset.x / WIDTH;
NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:a inSection:0];
if (self.backCollectionView == scrollView) {
if (a > 2 && a < 17) {
self.topCollectionView.contentOffset = CGPointMake(70 * (a - 2), 0);
}else if (a < 1){
self.topCollectionView.contentOffset = CGPointZero;
}
}
// topview跟着backcollectionview滑动而滑动
self.topView.frame = CGRectMake(70 * a + 15, 47, 60, 3);
[self collectionView:self.topCollectionView shouldSelectItemAtIndexPath:newIndexPath];
[self collectionView:self.topCollectionView didDeselectItemAtIndexPath:self.indexPath];
[self collectionView:self.topCollectionView didSelectItemAtIndexPath:newIndexPath];
self.indexPath = newIndexPath;
}