1

I create one UICollectionView sticky header section with this : sticky header section but when my UICollectionViewCell is 0 number header section in hide like this picture : enter image description here

in my picture show me one header section (index:2) and other header section is hidden. please guide me !!! I want other show like index 2.

this is my code:

- (void)viewDidLoad {
  [super viewDidLoad];
  self.view.backgroundColor = [UIColor whiteColor];
  Flow *layout=[[Flow alloc] init];
  //layout.sectionInset = UIEdgeInsetsMake(20,0,40,0);
  //layout.itemSize = CGSizeMake(100,100);
  _collect=[[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
  _collect.backgroundColor = [UIColor clearColor];
  [_collect setDataSource:self];
  [_collect setDelegate:self];
  [_collect registerClass:[HeaderView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView"];
  [_collect registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
  [self.view addSubview:_collect];

  //NSLog(@"%@",self.array);
}
- (NSMutableArray*)array {
  if (!_array) {
    _array = [NSMutableArray array];
    for (NSInteger i=0; i<SectionNum; i++) {
      //NSMutableArray *inner = [NSMutableArray arrayWithObject:@"0"];
      [_array addObject:@"0"];
    }
  }
  return _array;
}
- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
  return SectionNum;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
  if (section == 2) {
    return 10;
  } else
    return 0;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
  static NSString *identifier = @"cellIdentifier";

  CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

  return cell;
}

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
  UICollectionReusableView *reusableview = nil;
  if (kind == UICollectionElementKindSectionHeader) {
    HeaderView *header = [_collect dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];

    header.backgroundColor = [UIColor colorWithWhite:0.75 alpha:.9];
    header.titleLabel.font = [UIFont systemFontOfSize:24];
    header.titleLabel.textAlignment = NSTextAlignmentCenter;
    header.titleLabel.text = [NSString stringWithFormat:@"%ld",indexPath.section];
    reusableview = header;
  }

  if (kind == UICollectionElementKindSectionFooter) {
    UICollectionReusableView *footerview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView" forIndexPath:indexPath];
    reusableview = footerview;
  }

  return reusableview;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
  return CGSizeMake(100,100);
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
  CGSize headerSize = CGSizeMake(320, 50);
  return headerSize;
}
MKFB
  • 185
  • 1
  • 11

0 Answers0