2011-03-21 138 views
2

我有一个需要尽快按钮被点击,然后在条件语句后停止激活活动指示器...UIActivityIndi​​catorView启动和停止

我在方式在网上看了实现这一点,但所有我能找到与网页视图设置它们不是简单地关闭再开启它们,然后....下面是我的基本问题

-(IBAction)SavePassword:(id)sender{ 
\\start animating activity indicator 
if(post recieved no errors){ 
\\stop animating activity indicator 
} 
\\else{ 
return the user error 
} 

如果有人能帮助这将是真棒:)

+0

是你的行动asynchrone?因为如果是这样,你必须在回调中停止动画。 – 2011-03-21 10:30:19

+0

我使用asihttp,它只是一个syncroneous请求...也许如果我改变它异步它将工作.. – MrPink 2011-03-21 11:01:07

回答

10

它很直接转发... 创建一个在实施出口,并在界面生成器连接..

@property(nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator; 

只使用这两种方法来启动和停止动画...

[self.activityIndicator startAnimating]; 

[self.activityIndicator stopAnimating]; 
+0

谢谢这真的很有帮助。但是我已经将指示器设置为隐藏....因此,当按下按钮时它现在需要显示... – MrPink 2011-03-21 10:54:52

+3

活动指示器具有属性'hidesWhenStopped'将其设置为'YES'(或'TRUE').. – lukya 2011-03-21 11:14:57

+0

@MrPink在继续阅读之前,你如何阅读一些有关iOS和Objective C的基本教程?自那时以来,一个月已经过去了 – TheBlack 2011-05-14 03:00:50

1

我在用同样的方法隐藏和显示时遇到了问题。通过设置可见性,它不会立即改变它,而只是在方法结束时才会改变它。所以在你的情况下,它会显示指标(技术上不在屏幕上)做一些东西,然后再次隐藏它。对于用户而言,它永远不会出现。您可以尝试在后台线程上执行操作,但不确定它是否足够安全。 (因为通常像.hidden所有的绘图功能,必须出现在主线程)

[activityIndicator performSelectorInBackground:@selector(startAnimating) withObject:nil]; 
+0

你告诉你必须设置它是可见的,那么你需要围绕'[indicator setHidden:NO];'包装另一个方法,因为'YES'不是一个对象。然后调用这个只设置可见性的新方法。 – 2011-03-21 11:08:55

0

地方与界面生成器的帮助下,活动的指标。

然后作出该指标的iboulet。

IBoulet UIActivityIndicator *ac; 

那么财产申报和实现类senthesize它

@property(nonatomic,retain) UIActivityIndicator *ac; 

synethesize它。

@synthesize ac; 

然后

[ac startAnimating]; 

和其中u要停止

[ac stopAnimating]; 
相关问题