Vitalii Boiarskyi
Vitalii Boiarskyi

Reputation: 1393

MKannotationView with UIButton as subview, button don't respond

I have add a view with button as a subview to MKAnnotationView

 CCBigBubleViewController* buble = [[CCBigBubleViewController alloc] init];
 [annotationView addSubView:buble.view];

It is shown perfectly, but the button does't respond to tapping.

Upvotes: 1

Views: 1542

Answers (3)

Jordan
Jordan

Reputation: 571

In your implementation of MKAnnotationView, override the hitTest method:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    if (CGRectContainsPoint(_button.frame, point)) {
        return _button;
    }
    return [super hitTest:point withEvent:event];
}

Your button will then receive touch events.

Upvotes: 4

bopa
bopa

Reputation: 1145

your annotationView has probably not the right size. Out of it's frame subviews dont respond to touches. For testing this you can clip to bounds.

So make sure your button is inside the frame of your AnnotationView, perhaps sizeToFit will help here.

Upvotes: 3

Piyush Kashyap
Piyush Kashyap

Reputation: 1965

you will have to create button action in coding like this

 [buttonInstance addTarget:self action:@selector(youraction:) forControlEvents:UIControlEventTouchUpInside];

Upvotes: 0

Related Questions