Iphone UITapGestureRecognitor不';无法启动UIView子类

Iphone UITapGestureRecognitor不';无法启动UIView子类,iphone,objective-c,ios5,uiview,uigesturerecognizer,Iphone,Objective C,Ios5,Uiview,Uigesturerecognizer,我创建了UIView的自定义子类,因为我需要重写drawRect方法。 我尝试向其添加UITapGestureRecognitor,但这对我不起作用。 下面是我的ViewController的代码: MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)]; [customView setUserInteractionEnabled:YES]; UITapGestureR

我创建了UIView的自定义子类,因为我需要重写drawRect方法。 我尝试向其添加UITapGestureRecognitor,但这对我不起作用。 下面是我的ViewController的代码:

MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)];
[customView setUserInteractionEnabled:YES];

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[customView addGestureRecognizer:tapGestureRecognizer];
我不明白为什么当我触摸UIView子类对象时,手势识别器不会启动

提前多谢


修好了


我的视图在UIImageView上,UIImageView没有将
userInteractionEnabled
设置为YES。

确保在某处显示它(
addSubview
)。

还确保userInteractionEnabled设置为true。如果这是真的,请发布创建和连接手势识别器的代码。

在要添加的子视图上将UserInteractionEnable检查设置为真,并在selector方法中传递对象,即

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)];
并将选择器方法设置为

-(void) doSomething:(UITapGestureRecognizer *)gesture;
如果您还有问题,请告诉我。
谢谢

解决了它


我的视图位于UIImageView上,并且UIImageView没有将
userInteractionEnabled
设置为YES。

YES我显示我的视图。在添加手势识别器之后,我创建了一个addSubview方法。边界/帧是否正确?显然是的,我的子类实际上是一个用CoreGraphics绘制的圆。框架是:10,30,30,30。为了了解更多信息(可能会有所帮助),我向您展示的代码位于tableView:CellForRowatineXpath方法中。一个想法?在这种情况下,如果您将您的customView声明为UIControl而不是UIView,并移除UIAPTestureRecognitizer并将目标(如将目标添加到UIButton)添加到您的customView我尝试使用UIControl,它将不起作用。userInteractionEnabled设置为true。我在我的第一段代码中就在主题顶部发布了代码。提前感谢只是我在其中添加子视图的UIImageView未启用userInteractionEnabled。。。修好了,谢谢!那太好了。现在别忘了让帖子无人应答或没有标记。干杯这甚至在3年后对我有所帮助。谢谢