【问题标题】:How to create swipe gesture for right/left in detailed view UIimage如何在详细视图 UIimage 中为右/左创建滑动手势
【发布时间】:2016-03-04 05:05:58
【问题描述】:

我正在开发一个食品应用程序,其中每个 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

【问题讨论】:

    标签: ios objective-c uitableview uiimage uiswipegesturerecognizer


    【解决方案1】:

    添加这个

     [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");
      }
    }
    

    如果您想了解更多信息:请查看 Gesture recognizer (swipe) on UIImageView

    【讨论】:

    • 如果您觉得有用,请接受此答案..以便对更多用户有所帮助
    • 但是当我实现这个代码时,每个单元格类别都会得到这些图像。这是首先显示的。
    • 表示每个单元格显示相同的图像。你的线路不清楚
    • 是的,你说得对。我希望不同的单元格有不同的图像。然后第二个单元格显示不同的图像。看看这个链接
    • 是的,你说得对。我希望不同的单元格有不同的图像。然后第二个单元格显示不同的图像。查看此链接..请参阅功能。 codecanyon.net/item/ios-recipe-app/10960556 每个食谱有多个图像。
    【解决方案2】:

    在您的详细视图中将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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多