在ios中的uitableview行中单击imageview(动态添加)

在ios中的uitableview行中单击imageview(动态添加),ios,objective-c,iphone,uitableview,uiimageview,Ios,Objective C,Iphone,Uitableview,Uiimageview,我有一个tableview,它的行是动态的,每行都有n个ImageView,正如所附的屏幕截图所示 现在我想知道我点击了哪个imageview 注意:imageview动态添加到一个视图中,该视图添加到scrollview中,以便它可以水平滚动 在tableview中有n行 编辑: 我试着在图像视图上方添加简单的按钮,只是想尝试一下它是否点击,但它的点击也不起作用 我也尝试了手势的解决方案,但也不起作用 代码: -(UITableViewCell )tableView:(UITableView

我有一个tableview,它的行是动态的,每行都有n个ImageView,正如所附的屏幕截图所示

现在我想知道我点击了哪个imageview


注意:imageview动态添加到一个视图中,该视图添加到scrollview中,以便它可以水平滚动

在tableview中有n行

编辑: 我试着在图像视图上方添加简单的按钮,只是想尝试一下它是否点击,但它的点击也不起作用

我也尝试了手势的解决方案,但也不起作用

代码

-(UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *strrowId ;

    UITableViewCell  *cell = [_tblviewScroll1 dequeueReusableCellWithIdentifier:@"cellOne"];


        // create and add labels to the contentView
        [cell.contentView setBackgroundColor:[UIColor colorWithRed:231.0/255.0 green:231.0/255.0 blue:231.0/255.0 alpha:1.0]];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;

       // cell.contentView.userInteractionEnabled=NO;
        scrollView1 = (UIScrollView*)[cell.contentView viewWithTag:3];

        [scrollView1  setShowsVerticalScrollIndicator:NO];

        scrollView1.delegate = self;

        NSArray* subviews1 = [scrollView1 subviews];
            for (UIView* subview in subviews1) {
                [subview removeFromSuperview];
            }

        if (scrollView1.contentOffset.y > 0  ||  scrollView1.contentOffset.y < 0 )
            scrollView1.contentOffset = CGPointMake(scrollView1.contentOffset.x, 0);



    [scrollView1 setBackgroundColor:[UIColor colorWithRed:231.0/255.0 green:231.0/255.0 blue:231.0/255.0 alpha:1.0]];

    [scrollView1 setCanCancelContentTouches:NO];

    scrollView1.indicatorStyle = UIScrollViewIndicatorStyleBlack;

    scrollView1.clipsToBounds = YES

    scrollView1.scrollEnabled = YES;




        for (int i = 0; i <mutSubTitle.count; i++)
        {
            NSString *ids = @"";



                UIView *viewvertically1;
                viewvertically1=[[UIView alloc]init];
                viewvertically1.tag = (i+1);
                [viewvertically1 setUserInteractionEnabled:YES];
                [viewvertically1 setBackgroundColor:[UIColor whiteColor]];

                //Displaying image

                NSString *strImgUrl = @"https://img.xxxx.com/";
                NSString *strimge=[mutSubImag objectAtIndex:i];
                strImgUrl = [strImgUrl stringByAppendingString:strimge];

                NSURL *url = strImgUrl;

                UIImage *image = [UIImage imageNamed:url];

                UIImageView *imageView = [[UIImageView alloc] initWithImage:image];


                 imageView.frame= CGRectMake(0, 10, 170, 110);

                imageView.tag = i;  // tag our images for later use when we place them in serial fashion
                [imageView setUserInteractionEnabled:YES];

                // images with Lazy Loading

                [imageView sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"Placeholder.png"]];


                UITapGestureRecognizer *imgTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureTapEvent:)];


                imgTapGesture.numberOfTouchesRequired = 1;


                [imageView addGestureRecognizer:imgTapGesture];

                [viewvertically1 addSubview:imageView];
                [viewvertically1 addSubview:lblDesc];

                [scrollView1 addSubview:viewvertically1];
                //[cell bringSubviewToFront:scrollView1];

        }

    return cell;
}
-(UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
NSString*strrowId;
UITableViewCell*单元=[[u tblviewScroll1 dequeueReusableCellWithIdentifier:@“cellOne”];
//创建标签并将其添加到contentView
[cell.contentView setBackgroundColor:[UIColor-withred:231.0/255.0绿色:231.0/255.0蓝色:231.0/255.0 alpha:1.0];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
//cell.contentView.userInteractionEnabled=NO;
scrollView1=(UIScrollView*)[cell.contentView视图带标记:3];
[滚动视图1设置显示垂直滚动指示器:否];
scrollView1.delegate=self;
NSArray*子视图s1=[scrollView1子视图];
用于(UIView*子视图中的子视图1){
[子视图从SuperView移除];
}
如果(scrollView1.contentOffset.y>0 | | scrollView1.contentOffset.y<0)
scrollView1.contentOffset=CGPointMake(scrollView1.contentOffset.x,0);
[scrollView1 setBackgroundColor:[UIColor-WithRed:231.0/255.0绿色:231.0/255.0蓝色:231.0/255.0 alpha:1.0];
[滚动视图1设置CancelContentTouches:否];
scrollView1.indicatorStyle=UIScrollViewIndicatorStyleBlack;
scrollView1.clipsToBounds=是
scrollView1.scrollEnabled=是;

对于(int i=0;i尝试提供一个按钮,而不是添加到视图中的图像视图。将图像分配到按钮的backgroundImageView。然后,您可以在cellForRowAtIndexPath方法中为按钮提供操作为您的概念添加
UITapgestureRecognitizer

// by default the imageview userInteraction is disable you need to manually enable
cell.yourimageView.userInteractionEnabled = YES;
// the following line used for assign the different tags for eachImage
cell.yourimageView.tag = indexPath.row;

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ImageTapped:)];
tap.numberOfTapsRequired = 1;
[cell.yourimageView addGestureRecognizer:tap];  
最后需要检查单击了哪个imageView,检查选择器方法中的标志

-(void)ImageTapped :(UITapGestureRecognizer *) gesture
{
  // you can get tag in which image is selected
     NSLog(@"Tag = %d", gesture.view.tag);
}

使用UIButton as@Arun says或imageview ur,在背景色清晰的图像上使用当前添加按钮,并将标记添加到该按钮,然后使用该单击操作。

我尝试了这一方法,但在选择器方法[imageview setUserInteractionEnabled:YES]中无法使用;UIAPTgestureRecognitizer*IMGTAPSISTER=[[UIAPTgestureRecognitizer alloc]initWithTarget:self action:@selector(GestureTapeEvent:)];imgTapSirture.numberOfTouchesRequired=1;[imageView AddGestureRecognitizer:imgTapSirture];-(void)GestureTapeEvent:(UITapGestureRecognitizer*)手势{UIView*view=Sirture.view;NSLog(@“%ld”,(long)view.tag);}“这不适用于tablview,您在某些地方添加了它else@Anub.Karthik这是在DidSelectForRowatineXpathno中添加的,这是错误的,您无法获取选择器的原因,您需要添加这是CellForRowatineXpath,您可以将代码发送到我的邮件Id karthik吗。saral@gmail.com,我会检查并告诉uI也做了这件事,但是不走运,我已经编辑了我的问题。根据我的理解,确定显示表格,每行有多个图像,对吗?这样你就可以垂直滚动多行,水平滚动多个图像。嘿,Megz,让我尽快知道,我将在未来5分钟内离开。最简单的方法是使用集合视图而不是表格视图。请参阅如何使用both scroll@arunI尝试在imageview上添加一个按钮,只是为了测试,看看这是否对我有帮助,但按钮的点击也不起作用。我告诉过你添加一个按钮而不是imageview。你可以将该图像分配给按钮的backgroundImageView“imageview动态添加到一个视图,该视图添加到scrollview”-您可以用按钮替换整个内容。将此按钮添加到您的滚动视图中,并为按钮提供操作