如何在UIToolbar中创建UIActivityIndi​​catorView

时间:2012-08-31 10:23:57

标签: objective-c uitoolbar uiactivityindicatorview

我正在使用此代码将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)。

我该如何纠正?

3 个答案:

答案 0 :(得分:1)

您似乎更有可能想要一个带有活动指示器的按钮。您可以通过创建this post中所述的自定义视图按钮来完成此操作。然后您可以正常设置此按钮的操作,并且您可能希望保留对活动指示器的引用以启动和停止它。

答案 1 :(得分:0)

我最终通过使用gestureRecognizer在activityIndi​​catorView上添加了一个额外的视图来实现一个穷人的解决方案。

答案 2 :(得分:0)

这是一个非常古老的问题,但为什么不直接向UITapGestureRecognizer实例添加UIActivityIndicatorView实例? (在iOS 8.2上工作正常,我之前的版本没有测试过。)