仅当用户单击myImageView时,才在myImageView上启用触摸事件

时间:2011-06-14 13:47:43

标签: objective-c xcode ipad uiimageview touch

我有一个名为myViewClass的UIViewController类。

有一个名为myImageView的UIImage视图。

如何在myImageView上启用触摸事件。

我使用下面的代码在myImageView上启用触摸事件,但myImageView触摸事件在每个myViewClass或UI点击时触发。

任何人都可以告诉我如何避免这种情况。我只需要在myImageView上启用触摸事件,当用户点击myImageView时。

我使用下面的代码在myImageView上启用触摸事件:

 -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [imageview setFrame: CGRectMake(30,70,375,225)];
    [imageview.layer setBorderColor: [[UIColor whiteColor] CGColor]]; 
  }

1 个答案:

答案 0 :(得分:1)

使用以下代码,您可以判断您的触摸在UIImageView上结束。

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
    {
         [super touchesEnded:touches withEvent:event];
         UITouch *touch = [touches anyObject];
         CGPoint touchEndpoint = [touch locationInView:self.view];
         if(CGRectContainsPoint([myImageView frame], touchEndpoint))
         {
              NSLog("Touch is in UIImageView");
         }
    }

在上面的代码中,CGRectContainsPoint是帮助确定触摸点是否在图像边界内的主要功能。

这些方式你也可以在touchesBegin中实现。尝试按照您的要求实施。发表评论以获得进一步的帮助。

希望它有所帮助。