Как создать жест смахивания вправо / влево в подробном представлении UIimage

Я работаю над приложением для еды, в котором каждый tableViewCell показывает разные названия рецептов. Когда пользователь нажимает на рецепт (в ячейке), открывается подробный вид.

Теперь я пытаюсь реализовать жест смахивания для UIImageView, который показывает разные изображения при смахивании. Как мне это реализовать?

 UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeImage:)];

 UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeImage:)];


 // Setting the swipe direction.
 [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
 [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
 // Adding the swipe gesture on image view

 [Allimages addGestureRecognizer:swipeLeft];
 [Allimages addGestureRecognizer:swipeRight];



- (void)handleSwipe:(UISwipeGestureRecognizer *)swipe{

 NSInteger indexPath;

 if (indexPath==0) {

 if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {


   arrayimage=[[NSMutableArray alloc]initWithObjects:@ "BBQ Chicken Pizza.jpg",@ "roastchickensteaks.jpg", nil];


   swipee =  (swipee > 0)?  ([arrayimage count]-1):
    swipee%[arrayimage count];


    Allimages.image=[UIImage imageNamed:  [arrayimageobjectAtIndex:indexPath]];
    }}

http://i.stack.imgur.com/apDEw.png

http://i.stack.imgur.com/EiURG.png

http://i.stack.imgur.com/1q799.png


person Rana Raza    schedule 04.03.2016    source источник


Ответы (2)


Добавь это

 [imageview setUserInteractionEnabled=YES];

создать объект для класса распознавателя жестов

UISwipeGestureRecognizer *leftSwipe=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onSwipe)];

[leftSwipe setDirection:UISwipeGestureRecognizerDirectionLeft];

Добавить swipeGesture в imageView

[imageView addGestureRecognizer:leftSwipe];

-(void)onSwipe:(UISwipeGestureRecognizer)swipe{
 if(swipe.direction == UISwipeGestureRecognizerDirectionLeft)
  {
   NSLog(@"leftSwipe");
  }
}

если вам нужна дополнительная информация: просто проверьте Распознаватель жестов (проведите пальцем по экрану) в UIImageView

person UdayM    schedule 04.03.2016
comment
если вы нашли полезным, примите этот ответ .. чтобы он был полезен для большего числа пользователей - person UdayM; 04.03.2016
comment
Но когда я реализую этот код, каждая категория ячеек получает изображения тезисов, которые отображаются в первую очередь. - person Rana Raza; 04.03.2016
comment
это означает, что каждая ячейка показывает одинаковые изображения. ваша линия не ясна - person UdayM; 04.03.2016
comment
да, ты прав. Я хочу, чтобы в разных ячейках были разные изображения. Затем во второй ячейке отображаются разные изображения. Посмотри на эту ссылку - person Rana Raza; 04.03.2016
comment
да, ты прав. Я хочу, чтобы в разных ячейках были разные изображения. Затем во второй ячейке отображаются разные изображения. Посмотрите на эту ссылку .. см. В Особенности. codecanyon.net/item/ios-recipe-app/10960556 Несколько изображений на рецепт приготовления. - person Rana Raza; 04.03.2016
comment
добавьте свой код .. и изображения симулятора к вопросу. Тогда будет легко ответить - person UdayM; 04.03.2016

В вашем детальном просмотре сделайте UserInteractionEnabledt ДА вашего изображения.

 [imageView setUserInteractionEnabled:YES];

Добавление событий жеста смахивания

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];

// Setting the swipe direction.
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];

// Adding the swipe gesture on image view
[imageView addGestureRecognizer:swipeLeft];
[imageView addGestureRecognizer:swipeRight];

И обрабатывать события жеста смахивания, используя приведенный ниже код.

- (void)handleSwipe:(UISwipeGestureRecognizer *)swipe {

    if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
        NSLog(@"Left Swipe");
    }

    if (swipe.direction == UISwipeGestureRecognizerDirectionRight) {
        NSLog(@"Right Swipe");   
    } 

}

Или вы можете использовать сторонний инструмент

https://www.cocoacontrols.com/controls/pagedflowview

person Community    schedule 04.03.2016
comment
Я хочу, чтобы в разных ячейках были разные изображения. Затем во второй ячейке отображаются разные изображения. Посмотрите на эту ссылку .. см. В Особенности. codecanyon.net/item/ios-recipe-app/10960556 Несколько изображений на рецепт приготовления; - person Rana Raza; 04.03.2016