2012-09-17 52 views
0

在我的应用程序中,我为每个图像动态创建imageView,并将它们放置在滚动视图中。 如何通过单击每个图像来生成执行导航操作的事件?如何点击图片进行导航?

回答

0

快速和容易实现

而一个UITapGestureRecognizerUIImageView使用addGestureRecognizer

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTapped:)]; 
singleTap.numberOfTapsRequired = 1; 
singleTap.numberOfTouchesRequired = 1; 
[theImageView addGestureRecognizer:singleTap]; 
[theImageView setUserInteractionEnabled:YES]; 

现在,当视图被点击时触发以下:

- (void)imageViewTapped:(UIGestureRecognizer *)gestureRecognizer { 
    NSLog(@"%@", [gestureRecognizer view]); 
} 

替代解决方案

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    if ([[touches anyObject] view] == theImageView) 
    { 
     // ImageView tapped. 
    } 
} 
0

使用UIGestureRecognizer。在你的情况下,只需在你的每个UIImageView上添加一个UITapGestureRecognizer不要忘记在您的UIImageView上打开userInteractionEnabled,以便考虑水龙头。

UITapGestureRecognizer* tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewAction:)]; 
[imageView addGestureRecognizer:tapGR]; 
imageView.userInteractionEnabled = YES; 

-(void)imageViewAction:(UITapGestureRecognizer*)tapGR 
{ 
    UIImageView* imageView = tapGR.view; 
    // Do something with your imageView 
} 

the Event Handling Guide for iOS (Apple Doc)有关如何姿势识别工作,以及如何使用它们的详细信息和示例之类的东西。这本苹果指南非常值得阅读,并包含非常有帮助的概念和解释。