带孩子的UIView上的TouchUpInside

Ale*_*s G 20 iphone uiview-hierarchy touch-up-inside

我可能在这里遗漏了一些东西,但......

我有一个UIView带几个孩子(一对夫妇UILabel的和UIImageView).当用户点击(点击)父级内部的任何位置时,我需要捕获一个事件UIView- UIView它或其任何子级的可见部分).

这样做的最佳方法是什么?

Dar*_*yte 50

您可以在Identity Inspector中更改UIView的类...制作它UIControl然后您可以UITouchUpInside为您的视图添加一个事件- 捕获它上面的点击.

祝好运!

编辑:这是截图的一步一步:

风景... 原始视图 - 类型UIView

......当然,没有事件. UIView没有你可以使用的活动

返回并使用UIControl更改UIView并... 将UIView更改为UIControl

TA-DAA!活动! UIControl允许您使用事件

将方法挂钩到UITouchUpInside事件 为UITouchUpInside添加事件

这是它在接口文件中的样子 方法的界面

这就是它在实现文件中的样子(当然,你可以用你想要的任何东西替换日志记录) 该方法的实现

  • @WebOrCode:我已经编辑了答案并添加了屏幕截图,希望对您有所帮助。 (2认同)

Bar*_*vel 7

您可以通过为父视图设置手势识别器并确保您的孩子没有自己的手势识别器来假装此行为.为此,请向您的父级添加一个UIView侦听点击的手势识别器.parentView您的子视图(UILabels/ UIImageView)的包含视图在哪里,并且handleTap是由以下方法实现的方法parentView:

UIGestureRecognizer *tapParent = [[UITapGestureRecognizer alloc]initWithTarget:parentView action:@selector(handleTap)];
[parentView addGestureRecognizer:tapParent];
[tapParent release];
Run Code Online (Sandbox Code Playgroud)

由于您的孩子视图没有自己的手势识别器,因此他们不会"吃掉"手势,因此只要您在其范围内点击,父视图就会响应.