- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UIActivityIndicator
,它在我所有 View 的顶部开始动画。在他开始动画后,当前 View 的父 View 就会弹出。现在,在他制作动画后,我用 block 调用另一个类并运行一些服务器命令。
我的问题是,在另一个类中,我从服务器获取响应,但我无法告诉UIActivityIndicator
停止,因为他在另一个类中。 (我不得不说,我不想在应用程序委托(delegate)上实现任何内容)。
在服务器类上,收到响应后,会出现一个 UIAlertView
,但 UIAlertView
是在服务器类内部实现的。这就是我希望 UIActivityIndicator
停止的地方。
我希望我能很好地理解它,如果没有,请告诉我。
谢谢。
- (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];
}
最佳答案
一种选择是将 UIActivityIndicator
保留为单例对象并从项目中的任何位置使用它。另一种选择是尝试使用通知
。您需要向该事件指示器添加和删除观察者,并且每当触发/执行请求时,您需要发布通知以启动/停止事件指示器。
更新:
在您的情况下,您可以将其设置为 [[NSNotificationCenter defaultCenter] addObserver:activityIndicator 选择器:@selector(startAnimating) name:@"startActivityIndicator"object:nil]
和 [[ NSNotificationCenter defaultCenter] addObserver:activityIndicator 选择器:@selector(stopAnimating) name:@"stopActivityIndicator"object:nil]
为事件指示器分配内存后立即执行。现在,无论何时您想要启动或停止它,都可以调用 [[NSNotificationCenter defaultCenter] postNotificationName:@"startActivityIndicator"object:nil]
或 [[NSNotificationCenter defaultCenter] postNotificationName:@"stopActivityIndicator"object:无]
。确保事件指示器未释放。我建议您将事件指示器声明为此类中的类级别变量,并在 init 方法等中分配内存。在按钮按下的方法中,您只需使用 [darkView addSubview:activityIndicator];
关于objective-c - 将一个 ActivityIndicator 与两个类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065198/
我是一名优秀的程序员,十分优秀!