【问题标题】:UIImageView won't recognize tap gestureUIImageView 无法识别点击手势
【发布时间】:2015-08-17 18:52:17
【问题描述】:

我已经在 SO 上搜索了与此类似的其他问题,但没有找到解决问题的方法。出于某种原因,我的 UIImageView(我已添加到情节提要中的 UIView 中)无法识别我创建的点击手势。用户交互已启用,多点触控也是如此。我的选择器方法永远不会被调用。

self.image 是我添加到 UIView 上的 imageView 属性。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.image.image = [UIImage imageNamed:@"mountainWallpaper.png"];
    [self gesture];
}

-(void)gesture {

    UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(imageTapped:)];
    //imageTap.numberOfTapsRequired = 1;
    //imageTap.numberOfTouchesRequired = 1;
    imageTap.delegate = self;

    [self.image addGestureRecognizer:imageTap];

}

-(IBAction3)imageTapped:(UIGestureRecognizer *)tap {
    NSLog(@"test");
}

有什么建议吗?我已经查看了我发现的大多数其他问题,并尝试了各种解决方案,但没有这样的运气。据说许多答案是为了验证是否启用了用户交互,以确保设置了委托...我已经尝试了很多已经建议的方法。

我还尝试过首先将 UIView 添加为点击手势目标,将 imageView 本身添加为目标,将手势添加到 UIView 和 imageView...什么都没有。

在情节提要中,我将 UIImageView 作为视图和图像连接到我的 viewController。我通常以编程方式做事,所以我必须习惯在 IB 中连接对象,我很不擅长。

【问题讨论】:

  • 检查self.image.userInteractionEnabled = YES;。还有你的UIImageView 在哪里?因为有些东西阻碍了互动,
  • @rob180 如问题中所述,userInteraction 已通过情节提要启用。这会覆盖设置为“NO”的默认值。你说的放在哪里是什么意思?在情节提要中,我有一个 UIImageView 附加到一个附加到 ViewController 的 UIView。
  • 确保UIImageView之外没有任何内容
  • @rob180 除了视图控制器,它上面什么都没有。
  • 这是IBAction3 是这里的错误还是您在代码中有它?

标签: ios objective-c uiimageview


【解决方案1】:

检查以下几点可能对您有帮助:

  • 确保您的 UIImageView 用户交互已启用。
  • 图像视图的优先级应高于超级视图。
  • 确保图像视图 userIntration 的超级视图也已启用。
  • 您是否添加了 UI 手势委托?

【讨论】:

    【解决方案2】:

    您的拼写错误。尝试将 IBAction3 更改为 IBAction 或 void:

    -(void)imageTapped:(UIGestureRecognizer *)tap {
        NSLog(@"test");
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2013-03-26
      相关资源
      最近更新 更多