在主uiview的子视图上获取点击事件

Posted

技术标签:

【中文标题】在主uiview的子视图上获取点击事件【英文标题】:get click event on subview on main uiview 【发布时间】:2012-04-03 01:16:16 【问题描述】:

我有一个包含滚动图像+分页的视图。我已在 UIVIEW 上添加了这些图像,并将此 UIView 添加到主视图。我想检测滚动视图中图像的点击事件并在主视图中处理它们。

我该怎么做?

请帮忙

【问题讨论】:

【参考方案1】:

你可以用手势识别器解决这个问题。

// In the view controller where you create the subviews
// (not sure from your question, but I think you are adding image views to a scroll view

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake...];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTapped:)];
[imageView addGestureRecognizer:tap];

现在,当图像视图被点击时,它会被调用

- (void)imageViewTapped:(UITapGestureRecognizer *)gr 

    UIImageView *theImageViewThatGotTapped = (UIImageView *)gr.view;

【讨论】:

【参考方案2】:

使用手势简单的一个

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake...];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageViewTapped:)];
[imageView addGestureRecognizer:tap];

然后调用选择器方法并做任何你想做的事..

【讨论】:

【参考方案3】:

就个人而言,我没有添加UIImageView,而是将图像添加为UIButton,并为该按钮设置图像。然后,您将内部事件的修饰链接到您认为合适的方法。

【讨论】:

【参考方案4】:

对不起,我没有时间写代码。

为所有图像设置不同的标签将所有图像保存在数组中。然后在 touchbegin 设置框架并使用标签检查。

【讨论】:

以上是关于在主uiview的子视图上获取点击事件的主要内容,如果未能解决你的问题,请参考以下文章

UIView touchesEnded 事件未在第一次点击时调用,但在再次点击时调用

对 uicontrol 的 nextresponder 感到困惑

传播特定的触摸事件以在下面查看

IOS开发之功能模块--给任意的UIView添加点击事件

当 UIView 的子视图不起作用时,在 UI Button 上点击方法

在UIView上捕获和记录触摸事件