-2

In Collection view i am select the one cell but it is selected multiple cells.

- (UICollectionViewCell *)collectionView:(UICollectionView      *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    cell.Selectitems.tag=indexPath.row;
[cell.Selectitems addTarget:self action:@selector(selectitem:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)selectitem :(UIButton *)sender{
if ([sender isSelected]) {
    [sender setSelected: NO];
    cell.check = YES;
     [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal];
}else{
        [sender setSelected: YES];
        cell.check = YES;
      [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal];
}
}

Check bellow my image link [1]: https://i.stack.imgur.com/WIgDH.png

Siva Sankar
  • 543
  • 1
  • 4
  • 18

3 Answers3

1

Here is the complete code which may satisfy your requirement for checkbox with collectionview

https://www.dropbox.com/s/e43zk55surlwjlk/CollectionCkeck.zip?dl=0

Maulik Pandya
  • 2,200
  • 17
  • 26
0

When you clicked on second cell you are not changing image on first cell.

So make sure that if you clicked on any cell change the image as product-check.png and previous cell image as product-uncheck.png

Himanth
  • 2,381
  • 3
  • 28
  • 41
0

Do like this When Button is Pressed

-(void)selectitem :(UIButton *)sender{

//Get Index path from Button Tag
  NSIndexPath *indexPath = [NSIndexPath indexPathForRow:sender.tag inSection:0];

// get Cell instance and than do whatever you want with Cell items
CustomCell *cell = *cell = [self.collectionView cellForItemAtIndexPath:indexPath];

if ([cell.Selectitems isSelected]) {
    [cell.Selectitems setSelected: NO];
    cell.check = YES;
     [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal];
}else{
        [cell.Selectitems setSelected: YES];
        cell.check = YES;
      [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal];
}
}

i hope this will solve your problem .

Dhiru
  • 3,040
  • 3
  • 25
  • 69
  • CustomCell *cell = *cell = [self.collectionView cellForItemAtIndexPath:indexPath]; here Showing this error:Assigning to 'CustomCell' from incompatible type 'UICollectionViewCell * _Nullable' – Siva Sankar Oct 06 '16 at 07:54
  • 1
    CustomCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath]; sorry for that mistake ,,,, i have written two time "cell" ... id this gives error than Cast cell to CustomCell – Dhiru Oct 06 '16 at 11:00
  • thank you for your valuable time spend for me.Already some one the answer. – Siva Sankar Oct 06 '16 at 11:08