UITapGestureRecognizer not working in UIView?

I am triyng to make a gesture recognizer for a simple UIView:

UIView *theView = [[UIView alloc] initWithFrame:rect];
[theView setUserInteractionEnabled:YES];

UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                       action:@selector(handleTap)] autorelease];
[theView addGestureRecognizer:tap];

If I debug the view's gestureRecognizers properties, it shows a gesture recognition object. But when I click inside the view, it does not work.

The same code using UIImageView works perfectly, any ideas why it doesn't work in UIView?

UPDATED:

An approximate class.

@implementation ExampleClass

- (UIView *)getViewInRect:(CGRect)rect
{
    UIView *theView = [[UIView alloc] initWithRect:rect];
    [theView setUserInteractionEnabled:YES];

    UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] 
                                    initWithTarget:self 
                                    action:@selector(handleTap)] 
                                   autorelease];
    [aText addGestureRecognizer:tap];

    return theView;
}

- (UIImageView *)getImageViewInRect:(CGRect)rect
{
    UIImageView *theView = [[UIImageView alloc] initWithRect:rect];
    [theView setUserInteractionEnabled:YES];

    UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] 
                                        initWithTarget:self 
                                                action:@selector(handleTap)] 
                                   autorelease];
    [theView addGestureRecognizer:tap];

    return [theView autorelease];    
}

- (void)handleTap
{
    NSLog(@"Tap Handled!!", nil);
}

@end

UPDATED 2:

Adding UITapGestureRecognizer to all theView subheadings does not fix the problem ...

TO FIX THIS!!!

OK !! The problem was in CGRect for theView, it had a width of 0.0 !!!

+5
source share
2 answers

Have you tried this?

[view setUserInteractionEnabled:YES];
+19
source

ivar .h. , :

[self.theview setMultipleTouchEnabled:YES];

viewview viewDidLoad.

.

+2

All Articles