2012-08-31 72 views
0

一個UIToolbar一個UIActivityIndi​​catorView我使用此代碼插入到UIActivityIndi​​catorView我的工具欄如何使可點擊

-(void)addActivityIndicatorToToolbar { 
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
    activityIndicator.userInteractionEnabled = YES; 
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite; 
    [activityIndicator startAnimating]; 

    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator]; 
    barButton.target = self; 
    barButton.action = @selector(playButtonPressed:); 

    NSMutableArray *toolbarItemsMutable = [self.toolbar.items mutableCopy]; 
    [toolbarItemsMutable replaceObjectAtIndex:0 withObject:barButton]; 
    self.toolbar.items = toolbarItemsMutable; 
} 

然而,當我點擊了UIActivityIndi​​catorView的動作(playButtonPressed)不執行。

我該如何解決這個問題?

回答

0

我最終通過在gestureRecognizer的activityIndi​​catorView上添加額外的視圖來實現一個窮人的解決方案。

1

看起來你更想要一個帶有活動指示符的按鈕。您可以通過創建具有自定義視圖的按鈕來執行此操作,如this post中所述。然後,您可以將此按鈕的操作設置爲正常,並且您可能希望保留對活動指示器的引用來啓動和停止它。

+0

我用故事板將工具欄添加到我的視圖。它沒有屬性rightBarButtonItem ... – murze

+0

在閱讀您的文章更清楚我可以看到你設置活動指標作爲一個按鈕內的自定義視圖,道歉誤讀。按鈕時是否顯示活動指示器並推入? 它可能是選擇器名稱。方法' - (void)playButtonPressed:(id)sender'定義在同一個類中,還是你有' - (void)playButtonPressed'? –

+0

該按鈕不會推動它。我有 - (void)playButtonPressed:(id)在同一個類中定義的發送者(所以選擇器末尾的冒號是正確的)同時我通過在activityIndi​​catorView上添加額外的視圖來實現一個窮人的解決方案,一個gestureRecognizer。更優雅的解決方案會很好。 – murze

0

這是一個相當古老的問題,但爲什麼不直接將UITapGestureRecognizer實例添加到您的UIActivityIndicatorView實例? (在iOS 8.2上工作正常,我以前沒有測試過)。