在UIScrollview上水平显示图像的ipad和获取图像的标记点击

我在UIScrollView中显示图像与UIImageView.I添加UIGestureRecognizer到每个ImageView,我也设置图像视图的标签属性。我想标记的图像视图上点击特定的图像视图。但我只是得到最后ImageView.Pasting代码below.Your帮助将不胜感激。

UITapGestureRecognizer *tapRecognizer; tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewDidTapped:)]; tapRecognizer.numberOfTapsRequired = 1; tapRecognizer.delegate = self; scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(5, 60, self.view.bounds.size.width-20, self.view.bounds.size.height-100)]; scrollView.delegate = self; scrollView.pagingEnabled = YES; scrollView.scrollEnabled = YES; scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; [scrollView setCanCancelContentTouches:YES]; [scrollView setUserInteractionEnabled:YES]; float width; for (NSDictionary *dict in object) { UIImageView *backgroundImageView = [[UIImageView alloc]initWithFrame:CGRectMake(width, 0, self.view.bounds.size.width-20, self.view.bounds.size.height-40)]; NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init]; [dateformatter setDateFormat:@"yyyy-MM-dd"]; [dateformatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSDate *date = [dateformatter dateFromString:[NSString stringWithFormat:@"%@",[dict objectForKey:@"id"]]]; NSTimeInterval timeStamp = [date timeIntervalSince1970]; backgroundImageView.tag = timeStamp; [backgroundImageView setUserInteractionEnabled:YES]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[dict objectForKey:@"coverImage"]]]; AFImageRequestOperation *operation = [AFImageRequestOperation imageRequestOperationWithRequest:request imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image){ backgroundImageView.image = image; } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) { NSLog(@"Error %@",error); }]; [operation start]; width = width + backgroundImageView.frame.size.width; [backgroundImageView addGestureRecognizer:tapRecognizer]; [imageViewArray addObject:backgroundImageView]; [scrollView addSubview:backgroundImageView]; } 

并添加了获取手势事件的方法

 - (void)imageViewDidTapped:(UIGestureRecognizer *)gesture{ UITapGestureRecognizer *tapGesture = (UITapGestureRecognizer *)gesture; UIImageView *tappedImageView = (UIImageView *)[tapGesture view]; NSDateFormatter *dateformatter = [[NSDateFormatter alloc]init]; [dateformatter setDateFormat:@"yyyy-MM-dd"]; [dateformatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSLog(@"Issue Date :%@",[dateformatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:tappedImageView.tag]]); } 

你有许多imageView,但只有一个UITapGestureRecognizer。 你应该为每个imageView添加一个手势识别器。

在for循环中创buildUITapGestureRecognizer

 for (NSDictionary *dict in object) { UITapGestureRecognizer *tapRecognizer; tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewDidTapped:)]; tapRecognizer.numberOfTapsRequired = 1; tapRecognizer.delegate = self; // your code for image imageview [imageview addGestureRecognizer:tapRecognizer]; }