diff --git a/Classes/ELCImagePicker/ELCAssetCell.m b/Classes/ELCImagePicker/ELCAssetCell.m index d456b11..c97d8e4 100755 --- a/Classes/ELCImagePicker/ELCAssetCell.m +++ b/Classes/ELCImagePicker/ELCAssetCell.m @@ -97,18 +97,23 @@ - (void)cellTapped:(UITapGestureRecognizer *)tapRecognizer for (int i = 0; i < [_rowAssets count]; ++i) { if (CGRectContainsPoint(frame, point)) { ELCAsset *asset = [_rowAssets objectAtIndex:i]; + BOOL lastSelectedState = asset.selected; asset.selected = !asset.selected; ELCOverlayImageView *overlayView = [_overlayViewArray objectAtIndex:i]; overlayView.hidden = !asset.selected; - if (asset.selected) { - asset.index = [[ELCConsole mainConsole] numOfSelectedElements]; - [overlayView setIndex:asset.index+1]; - [[ELCConsole mainConsole] addIndex:asset.index]; - } - else - { - int lastElement = [[ELCConsole mainConsole] numOfSelectedElements] - 1; - [[ELCConsole mainConsole] removeIndex:lastElement]; + if (lastSelectedState==asset.selected) { + //do nothing. + }else{ + if (asset.selected) { + asset.index = [[ELCConsole mainConsole] numOfSelectedElements]; + [overlayView setIndex:asset.index+1]; + [[ELCConsole mainConsole] addIndex:asset.index]; + } + else + { + int lastElement = [[ELCConsole mainConsole] numOfSelectedElements] - 1; + [[ELCConsole mainConsole] removeIndex:lastElement]; + } } break; }