Ale*_*s G 20 iphone uiview-hierarchy touch-up-inside
我可能在这里遗漏了一些东西,但......
我有一个UIView带几个孩子(一对夫妇UILabel的和UIImageView).当用户点击(点击)父级内部的任何位置时,我需要捕获一个事件UIView- UIView它或其任何子级的可见部分).
这样做的最佳方法是什么?
Dar*_*yte 50
您可以在Identity Inspector中更改UIView的类...制作它UIControl然后您可以UITouchUpInside为您的视图添加一个事件- 捕获它上面的点击.
祝好运!
编辑:这是截图的一步一步:
风景...

......当然,没有事件.

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

TA-DAA!活动!

将方法挂钩到UITouchUpInside事件

这是它在接口文件中的样子

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

您可以通过为父视图设置手势识别器并确保您的孩子没有自己的手势识别器来假装此行为.为此,请向您的父级添加一个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)
由于您的孩子视图没有自己的手势识别器,因此他们不会"吃掉"手势,因此只要您在其范围内点击,父视图就会响应.