Iphone 在加载完整页面之前,活动指示器不显示
我希望在加载整个网页之前显示我的活动指示器。请使用一些示例程序或博客帮助我。谢谢Iphone 在加载完整页面之前,活动指示器不显示,iphone,activity-indicator,Iphone,Activity Indicator,我希望在加载整个网页之前显示我的活动指示器。请使用一些示例程序或博客帮助我。谢谢 webView = [[UIWebView alloc] initWithFrame:webFrame]; webView.backgroundColor = [UIColor greenColor]; [second.view addSubview:webView]; webView.backgroundColor = [UIColor grayColor]; webView.scalesPag
webView = [[UIWebView alloc] initWithFrame:webFrame];
webView.backgroundColor = [UIColor greenColor];
[second.view addSubview:webView];
webView.backgroundColor = [UIColor grayColor];
webView.scalesPageToFit=YES;
[webView release];
NSString *urlAddress = storyLink;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
[(UIActivityIndicatorView *)[self navigationItem].rightBarButtonItem.customView startAnimating];
我已经在里面使用了上面的代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {}
方法
我用以下方法创建了活动指示器
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[super viewWillAppear:YES];
UIActivityIndicatorView * activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithCustomView:activityIndicator];
[self navigationItem].rightBarButtonItem = barButton;
}
For me activity idicator将在3秒内创建并销毁。我希望它一直显示到网页完全加载。请帮助我。谢谢。请向我们显示您正在执行的活动(加载网页)的代码。只有当代码将控制权返回到运行循环时,UI才会更新。如果代码阻塞了主线程(例如,使用同步NSURLConnection),则在代码完成之前,活动指示器不会开始旋转。您必须在第二个线程中完成工作或使用异步操作。首先,不要调用[super viewwillbeen:]两次。就说一次吧。第二,您正在泄漏activityIndicator和barButton
您尚未指明停止动画调用的位置。要执行您的建议,您需要将自己设置为webView的代理,并停止webViewDidFinishLoad:中的动画。您需要实现
UIWebViewDelegate
协议,以便了解您网页在UIWebView中的加载状态:
-(void)webView加载:(UIWebView*)webView{
//从这里开始设置活动指示器的动画。
}
-(无效)webViewDidFinishLoad:(UIWebView*)webView{
//停止在此处设置活动指示器的动画。
}
基于这些回调调用,您可以启动/停止活动指示器
- (void)webViewDidStartLoad:(UIWebView *)webView {
//start animating your activity indicator here.
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
//stop animating your activity indicator here.
}