2012-01-30 24 views
1

我有一個按鈕,作爲一個子視圖視圖添加到MKAnnotationViewMKannotationView用的UIButton爲子視圖,按鈕沒有反應

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

這是完全顯示,但按鈕簡化版,割膠迴應。

+1

嘗試[this](http://stackoverflow.com/questions/6941199/how-to-get-click-event-from-a-button-added-over-mkannotationview)或[this](http:/ /stackoverflow.com/questions/6862901/putting-uibutton-and-other-uicontrol-objects-inside-an-mkannotationview-and-allo)。 – Anna 2012-01-30 13:29:44

+0

第二個鏈接適用於我 – 2012-01-30 15:04:37

回答

0

你將不得不在編碼這樣

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

已添加目標 – 2012-01-30 13:17:17

+0

檢查您是否添加了:在@selector方法 – 2012-01-30 13:20:51

3

您annotationView創建按鈕動作可能已經沒有合適的尺碼。它的框架子視圖不響應觸摸。爲了測試這個,你可以剪輯到界限。

因此,請確保您的按鈕位於AnnotationView的框架內部,或許sizeToFit將在這裏幫助。

4

在您的實現MKAnnotationView的,覆蓋則hitTest方法:

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

您的按鈕然後將收到的觸摸事件。

+0

這不應該是必要的,儘管...他不知怎的搞砸了他的視圖層次結構。 (這應該工作:) :) – 2013-05-09 09:06:48

+0

如果你想有一個可點擊的自定義標註,這是我發現的唯一方法。這有點哈克,但絕對不是我做過的最糟糕的事情:) – Jordan 2013-05-09 09:08:52

+0

我既沒有;)但我有一個視圖在這裏有一個可點擊的子視圖:) – 2013-05-09 09:59:59