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

发布于 2024-11-15 03:43:52 字数 533 浏览 2 评论 0原文

我有一个名为 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]]; 
  }

i have a UIViewController class named as myViewClass.

there is a UIImage view named as myImageView.

how can i enable touch event on myImageView.

i used the below code to enable touch event on myImageView however the myImageView touch event is triggering on each myViewClass or UI click.

can any one tell me how can i avoid that.i just need only enable touch event on myImageView, when user clicks on myImageView.

i used the below code to enable touch event on myImageView:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟凡古楼 2024-11-22 03:43:52

使用以下代码您可以判断您的触摸在 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中实现。尝试按照您的要求实施。发表评论以获得进一步的帮助。

希望有帮助。

Using following code you can judge that your touch ended on your 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");
         }
    }

In above code CGRectContainsPoint is the main function which helps to determine the touch point is in the image boundary or not.

These way you can implement in touchesBegin too. Try to implement as per your requirement. Leave a comment for further help.

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文