2012-01-30 13 views
1

がMKAnnotationViewMKannotationViewはサブビューとして、ボタンは私が持っている

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

それは完全に示されているにサブビューとしてボタンでビューを追加する応答しませんが、ボタンがタップに反応does't。

+1

み[この](http://stackoverflow.com/questions/6941199/how-to-get-click-event-from-a-button-added-over-mkannotationview)または[この](のhttp:/ /stackoverflow.com/questions/6862901/putting-uibutton-and-other-uicontrol-objects-inside-an-mkannotationview-and-allo)。あなたが追加した場合場合は、2番目のリンクは私 – Anna

+0

はすでに –

答えて

0

あなたのannotationViewはおそらく正しいサイズを持っていないこの

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

目標のために働く –

+0

チェックが追加されました:@selector方法 –

3

のようなコーディングにボタンアクションを作成する必要があります。それからフレームのサブビューはタッチに反応しません。これをテストするために、境界にクリップすることができます。

ので、おそらくsizeToFitがここに役立ちます、あなたのボタンはあなたのAnnotationViewの枠内であることを確認してください。 MKAnnotationViewの実装で

4

、HitTestメソッドをオーバーライドします。

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

あなたのボタンは、タッチイベントを受け取ります。

+0

に、これは彼が何とか彼のビュー階層を台無しに...しかし必要はありません。 (これはうまくいくはずです:)) –

+0

私が見つけた唯一の方法であるクリック可能なカスタム吹き出しが必要な場合。それはややハッキーですが、間違いなく私がやった最悪のことです:) – Jordan

+0

私も;)しかし、私はここにクリック可能なサブビューを持っているビューがあります:) –

関連する問題