UICollectionVIew in iOS

Total Post:159

Points:1117
iPhone  Ios  Ios 7 
 1413  View(s)
Ratings:
Rate this:

I am Developing Section based UICollection view something like section based UITablview.but each section have different number of data. but my issue is that it contain the similar data for every section.

Here is Code :-

- (void)viewDidLoad{
    [super viewDidLoad];
    //registering class for cell reusing
    [self.collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:@"CollectionCell"];
    //registering class for view reusing
    [self.collectionView registerClass:[SupplementaryView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"SupplementaryView"];
   NSDictionary *animals = @{@"B" : @[@"Bear", @"Black Swan", @"Buffalo"],
                @"C" : @[@"Camel", @"Cockatoo"],
                @"D" : @[@"Dog", @"Donkey"],
                @"E" : @[@"Emu"],
                @"G" : @[@"Giraffe", @"Greater Rhea"],
                @"H" : @[@"Hippopotamus", @"Horse"],
                @"K" : @[@"Koala"],
                @"L" : @[@"Lion", @"Llama"],
                @"M" : @[@"Manatus", @"Meerkat"],
                @"P" : @[@"Panda", @"Peacock", @"Pig", @"Platypus", @"Polar Bear"],
                @"R" : @[@"Rhinoceros"],
                @"S" : @[@"Seagull"],
                @"T" : @[@"Tasmania Devil"],
                @"W" : @[@"Whale", @"Whale Shark", @"Wombat"]};
  NSArray*  animalSectionTitles = [[animals allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionCell" forIndexPath:indexPath];
    cell.label.text = @"Hello";
    cell.backgroundColor = [UIColor darkGrayColor];
    return cell;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
           return [animals count];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
    return [animalSectionTitles count];
}
-(UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath{
    SupplementaryView *supplementaryView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"SupplementaryView" forIndexPath:indexPath];
    if(kind == UICollectionElementKindSectionHeader){
        supplementaryView.backgroundColor = [UIColor lightGrayColor];
        supplementaryView.label.text = @"Header";
    }
    else{
    }
    return supplementaryView;
}
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
    return CGSizeMake(500, 50);
}
  1. Post:89

    Points:629
    Re: UICollectionVIew in iOS

    Something like this could help you.


    - (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
    int i=0;
    for (NSDictionary *item in animals) {
        if (section==i) {
            NSArray *lala=[animals objectForKey:item];
            NSLog(@"%d",lala.count);
            return lala.count;
        }
        i++;
    }
    }

      Modified On Apr-06-2018 01:04:48 AM

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!