как отменить выбор предыдущего выбранного изображения, когда другое изображение выбрано с помощью жеста касания в ios?

у меня есть вид прокрутки, который содержит множество изображений. Я выбираю с помощью жеста касания. введите здесь описание изображения

выберите изображение установлены так. эта часть выполнена успешно.!введите здесь описание изображения

Но моя проблема в том, что когда я нажимаю другой, он дает мне множественный выбор. Я хочу удалить предыдущий выбор. введите здесь описание изображения

я хочу что-то подобное, когда я выбираю следующее изображение, а предыдущее отменяется. введите здесь описание изображения

извините, за плохое объяснение.

Заранее спасибо.

код создания прокрутки

//below code are for create scroll view 



-(void)viewDidLoad{   
    scrollView.delegate = self;
 scrollView.scrollEnabled = YES;
 int scrollWidth = 70;
 scrollView.contentSize = CGSizeMake(scrollWidth,50);

    int xOffset = 0;

 for(int index=0; index < [imagesName count]; index++)
 {

  img = [[UIImageView alloc] init];
        [img setUserInteractionEnabled:YES];
  img.bounds = CGRectMake(0, 0, 60, 40);
  img.frame = CGRectMake(5+xOffset, 5, 60, 40);

        //below line add here
        img.image = [UIImage imageNamed:[imagesName objectAtIndex:index]];

        img.tag = 303 + index;

      //  [img.layer setBorderColor:[UIColor whiteColor].CGColor];
       // [img.layer setBorderWidth:2.0f];

        [Scrollimages insertObject:img atIndex:index];

        scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,50);
        [scrollView addSubview:[Scrollimages objectAtIndex:index]];

       //xOffset += 170;

        xOffset += 70;
 }


    for (UIImageView *scrollimage in Scrollimages) {

           UITapGestureRecognizer *singleTapRecognizerInScroll = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewsingleTappedInScrollMethod:)];

        singleTapRecognizerInScroll.delegate = self;

        singleTapRecognizerInScroll.numberOfTapsRequired = 1;
        singleTapRecognizerInScroll.numberOfTouchesRequired = 1;


        [scrollimage  addGestureRecognizer:singleTapRecognizerInScroll];

        }     
  }  
 -(void)scrollViewsingleTappedInScrollMethod:(UITapGestureRecognizer *)recognizer{

       scrollimageview = (UIImageView *)recognizer.view;

      //we select the image using tag.(contain many images)
    if ([scrollimageview tag] == 303) {

        selectLimitSet = 3;

        }

        }

person Renish Dadhaniya    schedule 02.10.2013    source источник
comment
уверен, что это не коллекция, и не могли бы вы предоставить какой-нибудь код, как вы устанавливаете статус для выбранного?   -  person peko    schedule 02.10.2013
comment
да, это представление прокрутки, а не представление коллекции.   -  person Renish Dadhaniya    schedule 02.10.2013


Ответы (2)


Когда вы выбираете изображение, сохраняйте его ссылку на выбранное изображение. Когда выбрано следующее, выберите текущее изображение и выберите новое, где вы получили жест касания. 1. Создайте свойство для запоминания текущего выбранного тега просмотра изображения @property (nonatomic, assign) NSInteger currentTag;

-(void)onTapGesture(id)sender{
    if(self.currentTag == sender.tag){
     //tap on previously selected image
     //you can deselect same image or any thing else you want to do.
     return;
    }
    UIImageView *prevImageView = [self.view viewWithTag:self.currentTag];
    //deselect prevImageView, if you want to change image do it now
    UIImageView *selectedImageView = (UIImageView*)sender; 
    self.currentTag = selectedImageView.tag;
   //select selectedImageView now, change image now.
}
person Adnan Aftab    schedule 02.10.2013
comment
у меня есть много изображений, и эти изображения сенсорные, используя TAG.ваш путь в трудное управление. - person Renish Dadhaniya; 02.10.2013
comment
Да, это подход, которому можно следовать для выполнения этой работы. Мы можем использовать один и тот же текущий и предыдущий тег для выбора и отмены выбора режима просмотра изображения. Вы можете использовать UICollectioView для этой цели или UITableView, теперь это зависит от вашего подхода и потребностей. :) - person Adnan Aftab; 02.10.2013
comment
Но как отменить выбор предыдущего тега, это мой вопрос? Я нахожу текущий тег и устанавливаю его альфа-просмотр изображения. - person Renish Dadhaniya; 04.10.2013
comment
Когда вы выбираете новое изображение, в это время у вас есть текущий тег, указывающий на предыдущий выбранный тег. Итак, сначала отмените выбор предыдущего выбранного изображения (которое является текущим тегом), теперь выберите отправителя (где вы коснулись) после выбора нового, измените значение currentTag на sender.tag (теперь это будет указывать на новый, и когда вы коснетесь какое-то другое в это время будет использоваться для отмены выбора предыдущего изображения). Надеюсь, вы поняли мою точку зрения, если не объяснить, я попытаюсь объяснить больше. - person Adnan Aftab; 04.10.2013
comment
+1, если у вас есть демо-код, пожалуйста, пришлите мне, большое спасибо. Публикуйте здесь только логику выбора и отмены выбора. - person Renish Dadhaniya; 04.10.2013
comment
мой вопрос, как отменить выбор предыдущего изображения? любая идея. - person Renish Dadhaniya; 04.10.2013

Используйте UICollectionView. Он сделает всю работу за вас.

person Amon    schedule 02.10.2013
comment
Полезный ответ - это ответ с некоторым исходным кодом. Amon, пожалуйста, предоставьте исходный код, если это возможно. - person Nishan Hitang; 02.10.2013
comment
Я не согласен, это очень полезный ответ :) - person Guy Kogus; 02.10.2013