【问题标题】:How to perform some Action on imageview clicked?如何对单击的图像视图执行一些操作?
【发布时间】:2012-06-14 09:50:21
【问题描述】:

我正在开发照片拼贴应用程序。我想对图像视图执行一项操作,以便任何人都可以帮助我解决我的问题。当我从照片库中选择图像并在双击图像视图后显示在图像视图上时,我想推送或呈现一个新视图来裁剪此图像.....所以有人告诉我如何解决我的问题.. .

【问题讨论】:

  • 正如下面的答案所暗示的,如果没有迫切的理由使用UIImageView,你最好使用自定义UIButton

标签: iphone objective-c ios


【解决方案1】:

使用自定义类型的 UIButton 并将图像放入其中。你就完成了。

【讨论】:

  • 我也检查了这个,但是当我第二次点击按钮时,它再次执行相同的操作,所以如何解决这个问题
  • @kuldeepsingh 一旦点击按钮就禁用它... button.userInteractionEnabled = NO;
【解决方案2】:

为 ImageView 添加手势

UITapGestureRecognizer *sg=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(HandleEvent)];
    sg.numberOfTapsRequired=2;
    [BottomBar addGestureRecognizer:sg];
    [sg release];

在这里完成你的任务:

-(void)HandleEvent
{

// your task
}

谢谢

【讨论】:

    【解决方案3】:

    您应该使用 UIButton 而不是 UIImageView。您可以将其样式设置为自定义,然后为其分配图像。 UIButton 提供了所有已经内置的双击方法。

    【讨论】:

    • 在许多情况下这是更好的解决方案。它为我指明了正确的方向!谢谢!
    【解决方案4】:

    如果您使用的是 UIImageView,请确保使用 setUserInteractionEnabled:YES。然后您需要在 touchesBegan,ended, (canceled) 中检查您的触摸。

    【讨论】:

      【解决方案5】:

      您已设置为使用 UIImageView,您必须继承 UIImageView 并覆盖您想要拦截的触摸方法。例如:

      - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
      {
         // Call super to make sure you don't lose any functionality
         [super touchesBegan:touches withEvent:event];
      
         // Perform the actions you want to perform with the tap.
      }
      

      使用 UIButtons 作为 UIImageViews 的替代品是一个好主意,您只需将连接从每个按钮拖到视图控制器中的插座并处理操作即可。您可以像当前使用 UIImageViews 一样在按钮上设置背景图像。将您的按钮类型设置为自定义,您会很好地使用 g

      【讨论】:

        【解决方案6】:

        如果你使用 UIImageView 类,首先设置 setUserInteractionEnabled:YES 。然后将 UITapGestureRecognizer 事件设置为图像视图。

        【讨论】:

          【解决方案7】:

          试试这个

          - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
          {
           CGPoint locationPoint = [[touches anyObject] locationInView:self.view];
              CGPoint viewPoint = [imageView convertPoint:locationPoint fromView:self.view];
              if ([imageView pointInside:viewPoint withEvent:event]) {
                 //do something
              }
          }
          

          【讨论】:

            【解决方案8】:

            制作一个按钮,并清除它的颜色。在按钮的背面,放置您的图像视图,以便您的图像视图似乎可见而按钮不可见。现在将事件附加到按钮。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-06-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多