gpt4 book ai didi

objective-c - 将一个 ActivityIndi​​cator 与两个类一起使用

转载 作者:行者123 更新时间:2023-11-29 04:20:15 26 4
gpt4 key购买 nike

我有一个 UIActivityIndi​​cator,它在我所有 View 的顶部开始动画。在他开始动画后,当前 View 的父 View 就会弹出。现在,在他制作动画后,我用 block 调用另一个类并运行一些服务器命令。

我的问题是,在另一个类中,我从服务器获取响应,但我无法告诉UIActivityIndi​​cator 停止,因为他在另一个类中。 (我不得不说,我不想在应用程序委托(delegate)上实现任何内容)。

在服务器类上,收到响应后,会出现一个 UIAlertView ,但 UIAlertView 是在服务器类内部实现的。这就是我希望 UIActivityIndi​​cator 停止的地方。

我希望我能很好地理解它,如果没有,请告诉我。

谢谢。

- (void)buttonPressed:(id)sender
{
UIView * darkView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
darkView.backgroundColor = [UIColor blackColor];
darkView.alpha = 0.5f;

UIActivityIndicatorView * activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[darkView addSubview:activityIndicator];
activityIndicator.center = darkView.center;

[activityIndicator startAnimating];
[[UIApplication sharedApplication].keyWindow addSubview:darkView];

// Inside this class (ShareByEmail) there is a UIAlertView that should stop the
// animation that already running right now.
ShareByEmail *sbe = [[ShareByEmail alloc]init];
[sbe share];

[self.navigationController popViewControllerAnimated:YES];
}

最佳答案

一种选择是将 UIActivityIndi​​cator 保留为单例对象并从项目中的任何位置使用它。另一种选择是尝试使用通知。您需要向该事件指示器添加和删除观察者,并且每当触发/执行请求时,您需要发布通知以启动/停止事件指示器。

更新:

在您的情况下,您可以将其设置为 [[NSNotificationCenter defaultCenter] addObserver:activityIndi​​cator 选择器:@selector(startAnimating) name:@"startActivityIndi​​cator"object:nil][[ NSNotificationCenter defaultCenter] addObserver:activityIndi​​cator 选择器:@selector(stopAnimating) name:@"stopActivityIndi​​cator"object:nil] 为事件指示器分配内存后立即执行。现在,无论何时您想要启动或停止它,都可以调用 [[NSNotificationCenter defaultCenter] postNotificationName:@"startActivityIndi​​cator"object:nil][[NSNotificationCenter defaultCenter] postNotificationName:@"stopActivityIndi​​cator"object:无]。确保事件指示器未释放。我建议您将事件指示器声明为此类中的类级别变量,并在 init 方法等中分配内存。在按钮按下的方法中,您只需使用 [darkView addSubview:activityIndi​​cator];

关于objective-c - 将一个 ActivityIndi​​cator 与两个类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com