在ios中的uitableview行中单击imageview(动态添加)
我有一个tableview,它的行是动态的,每行都有n个ImageView,正如所附的屏幕截图所示 现在我想知道我点击了哪个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
注意: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”-您可以用按钮替换整个内容。将此按钮添加到您的滚动视图中,并为按钮提供操作