From 0ce6bc71cf7af8781c3281618f940ae3d8ad4b90 Mon Sep 17 00:00:00 2001 From: Luckyhu Date: Sat, 6 Jun 2015 16:15:15 +0800 Subject: [PATCH] fix bug when selected image count is bigger than max image count.remove last element. --- Classes/ELCImagePicker/ELCAssetCell.m | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) 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; }