objective-c - 动画消失后的 UIBarButtonItem

标签 objective-c ios uibarbuttonitem uiactivityindicatorview

我有 UIBarButtonItem(在界面生成器中配置)。如果用户单击此按钮,将启动“繁重的过程”,为了获得更好的用户体验,我想将此按钮更改为 (UIActivityIndi​​catorView)。我通过以下方式进行:

    self.indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];   
    indicator.hidesWhenStopped = YES;
    [self.heavyBarButton initWithCustomView:self.indicator];

    [self.indicator startAnimating];

    [NSThread detachNewThreadSelector:@selector(animateHeavyProcess) toTarget:self withObject:nil];

animateHeavyProcess:

     [self heavyProcess];
     [self.indicator stopAnimating];
     UIBarButtonItem *originalButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"maximize.png"] style:UIBarButtonItemStylePlain target:self action:@selector(startProcessClick:)];
     self.heavyBarButton = originalButton;
     [originalButton release];

会发生什么:在用户单击 BarButton 动画后,动画将开始,处理按钮消失后。但是,我希望原始按钮再次显示。

最佳答案

如果您将 Grand Central Dispatch 用于繁重的流程会怎样?我会认为它更方便。但请记住,您不能使用该 block 中的任何 UI。这是一个例子:iphone ios running in separate thread

关于objective-c - 动画消失后的 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533727/

相关文章:

objective-c - Developer 和 Enterprise Distribution 之间的 CodeSign 冲突

android - 从年龄中找到 DateOFBirth

ios - 按计算距离对 NSMutableArray 排序

objective-c - 在 Cocoa 中查找处理器类型是 PPC 还是 Intel 的最佳方法是什么? (我必须使用碳吗?)

ios - 从 OpenCV 距离变换得到奇怪的结果

uikit - iOS 7 : What is UIBarButtonItem's default font?

iphone - 如何隐藏 UIBarButtonItem?

ios - 在 Storyboard中创建自定义 UIBarButtonItem

ios - 在 WkWebView 中拦截滑动边缘

ios - 在弹出它转换到的 View Controller 之前,如何让单元格保持突出显示?