uiactivityindicator何时加载页面
当我点击桌面视图中的一个单元格时,如何显示uiactivityindicator,因为它有时需要一些时间才能将它推到下一个视图,因为它从互联网获取信息。uiactivityindicator何时加载页面
我已经成功地完成了它为我的uiwebview,但只是坚持这一点。
谢谢。
- (void)viewDidLoad webPage.self = delegate; indicator.hidesWhenStopped = TRUE; (无效)webViewDidStartLoad:(UIWebView *)webView {indicator startAnimating];(无效)webViewDidStartLoad:(UIWebView *)webView {indicator startAnimating]; }
- (void)webViewDidFinishLoad:(UIWebView *)webView {indicator stopAnimating]; }
嗨,这不是一个webview我试图把指标。它在我的navigationcontroller中的tableviews。你知不知道怎么?谢谢。 – 2011-06-01 15:18:23
您应该在单独的线程(在后台)的下一个视图控制器中执行抓取数据,以便它不会阻止UI。在完成数据获取之前,在那里显示活动指示器。
-(void)viewDidAppear:(BOOL)animated {
[super viewdDidAppear:YES];
[indicator startAnimating];
NSTimer* timerLoad = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(stopIndicator) userInfo:nil repeats:NO];
}
-(void)stopIndicator {
[indicator stopAnimating];
}
我认为这给你一个时间负载您的tableView
放入导航控制器
indicator.frame = CGRect(11,130,37,37);
[navBar addSubview:indicator];
&@Abizem:谢谢你们。 – 2011-06-16 15:16:10
(无效)viewDidLoad中{
//我们有一个NIB文件在这里播放,所以我在这里放下了loadView。只要确保你的loadView没有被调用两次!
[super viewDidLoad];
[self loadView];
}
-
(无效)的loadView {
的UIView *内容查看= [[UIView的页头] initWithFrame:方法[[UIScreen mainScreen] applicationFrame]]; self.view = contentView;
CGRect webFrame = [[UIScreen mainScreen] applicationFrame]; webFrame.origin.y = 0.0f; myWebView = [[UIWebView alloc] initWithFrame:webFrame]; myWebView.backgroundColor = [UIColor blueColor]; myWebView.scalesPageToFit = YES; myWebView.autoresizingMask =(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); myWebView.delegate = self; [self.view addSubview:myWebView];
[myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@“http://www.xyz.com/”]]];
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; activityIndicator.frame = CGRectMake(0.0,0.0,40.0,40.0); activityIndicator.center = self.view.center; [self。view addSubview:activityIndicator]; }
(void)dealloc {activityIndicator release]; [myWebView发布]; [super dealloc]; }
编译标记网页视图方法
-
(无效)webViewDidStartLoad:(的UIWebView *)webView的 { //开始的负荷,显示在状态栏的活性指示器
[UIApplication sharedApplication] .networkActivityIndicatorVisible = YES; [activityIndicator startAnimating]; }
-
(无效)webViewDidFinishLoad:(的UIWebView *)webView的 { //完成加载时,隐藏在状态栏
[UIApplication的sharedApplication] .networkActivityIndicatorVisible = NO活动性指示符; [activityIndicator stopAnimating]; }
-
(无效)web视图:(的UIWebView *)webView的didFailLoadWithError:(NSError *)错误 { //负载误差,隐藏在状态栏
[UIApplication的sharedApplication]的活性指示器.networkActivityIndicatorVisible = NO;
//报告网页视图内的错误
的NSString * Errorstring,则= [NSString的stringWithFormat: @ “
错误
您的请求%@”, error.localizedDescription]; [myWebView loadHTMLString:errorString baseURL:nil];
这是有点不清楚你在这里添加什么。这是解决方案还是其他问题? – Matthew 2013-01-31 18:03:07
您希望显示活动指标的视图?有表视图的人还是被推动的人? – TheBlack 2011-06-01 14:01:51
@TheBlack:我想在桌面视图中显示它。你知不知道怎么?谢谢。 – 2011-06-01 15:19:16
我假设您在didSelectRowForIndex UITableViewDelegate方法中添加活动指示器...您应该添加活动指示器作为表视图的子视图,请求异步http请求,请求完成时关闭活动指示器并推送新的VC。如果您使用同步http请求,它将阻止UI线程,并且您不会看到活动指示符。 – TheBlack 2011-06-01 15:28:29