【问题标题】:iOS remove all Activity IndicatorsiOS 移除所有 Activity Indicators
【发布时间】:2011-09-22 23:01:39
【问题描述】:

我的活动指标有问题。我有一个按钮,可以在活动指示器之间重新加载网站和显示。问题是如果用户在按钮上点击超过 1 次,它将重建一个新的指标,并且该指标一直在屏幕上冻结。 按钮禁用不起作用。有没有人解决这个问题。请帮忙。

这是我的代码:

-(IBAction) buttonReload {
Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];    
if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)){

    UIAlertView *myAlert = [[UIAlertView alloc]
                            initWithTitle:@"No Inet!" message:@"You need a Inet Connection..."
                            delegate:self
                            cancelButtonTitle:@"Ok"
                            otherButtonTitles:nil];
    [myAlert show];
    [myAlert release];
}

else 
{

    //Website loading
    [self performSelector: @selector(doLoadWebsite) 
               withObject: nil 
               afterDelay: 0];
    return; 
}
}

- (void) doLoadWebsite
{

//add activity indicator
NewsActivity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(140.0f, 180.0f, 40.0f, 40.0f)];
[NewsActivity setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.view addSubview: NewsActivity];
[NewsActivity startAnimating];

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(finishActivity) userInfo:nil repeats:YES];
//NewsActivity.backgroundColor = [UIColor grayColor];
NewsActivity.hidesWhenStopped = YES;
// Show Status Bar network indicator
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

//perform time-consuming tasks
//load News Website
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
}


-(void) finishActivity {

if (!webView.loading) {
    [self.NewsActivity removeFromSuperview];
    [NewsActivity stopAnimating];

    //Hide network activity indicator
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
} 
else {
    [NewsActivity startAnimating];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
 }


}

【问题讨论】:

    标签: iphone ios


    【解决方案1】:

    您应该在页面加载后执行stopAnimatingremoveFromSuperView。如果用户再次刷新页面,可以再次添加到subViewstartAnimating

    【讨论】:

    • 你能提供一点样品吗?如果我尝试使用 [NewsActivity removeFromSuperview];永远不会显示指示器。
    • 是的,再次将其添加到子视图中:)
    • 它不起作用。其他指标会一次又一次循环显示....
    • 有没有办法用循环杀死所有指标?
    • 好的,我已经修好了。谢谢
    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 2012-06-03
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多