【问题标题】:How can I add activityIndicator during viewload while fetching data from web services?如何在从 Web 服务获取数据时在视图加载期间添加活动指示器?
【发布时间】:2013-01-31 06:51:47
【问题描述】:

我如何在视图加载之前添加UIActivityIndicatorView。我正在从 网络服务器 获取数据。

这是我的代码

spinner=[[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(225, 115, 30, 30)];
[spinner setBackgroundColor:[UIColor clearColor]];
[spinner setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
[self.view addSubview:spinner];
[spinner startAnimating];


objCountryPreferences=[[CountryPreferences alloc]init];
objLanguagePreference=[[LanguagePreference alloc]init];
objMobilePrefixParser=[[MobilePrefixParser alloc]init];

//这是调用不同的网络服务

[objMobilePrefixParser getMobilePrefix];
[objLanguagePreference  languagePreference];
[objCountryPreferences getCountryIdArr];

【问题讨论】:

  • 你遇到了什么问题?
  • 对不起,我不能,这里不欢迎这种评论。它可以是标志,或者您的问题可以被否决。
  • 我想在加载视图时添加活动指示器。并在从 Web 服务获取数据后停止。你能建议我做什么吗?
  • 你是如何通过 NSURLConnection 或简单的 NSData 加载数据的?
  • 我正在从 NSURLConnection 加载数据。

标签: iphone ios objective-c ios6.1


【解决方案1】:

在单独的方法中添加 ActivityIndi​​cator 并使用它调用它

[self performSelector:@selector(addActivityIndicator) withObject:nil afterDelay:0.1];

【讨论】:

    【解决方案2】:

    你的意思是进度指示器没有动画。如果是,您需要在单独的线程中执行 startAnimating。 [微调器 performSelector:@selector(startAnimating)]

    【讨论】:

      【解决方案3】:

      创建微调器:

        self.spinner=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
          self.spinner.frame=CGRectMake(152,183,60,60);
          // display spinner in StatusBar it Optional for you
          [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
          [self.spinner sizeToFit ];    
            /*-----------Change Size of UIActivityIndicatorView-------------*/
              self.spinner.transform = CGAffineTransformMakeScale(2, 2);
          [self.webView addSubview:self.spinner];
         
      

      使用 UIWebView 的 Delegate 方法:

      - (void)webViewDidStartLoad:(UIWebView *)webView
      {
          [self.spinner startAnimating];
           // display  spinner in StatusBar it Optional for you
           [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
      }
      
      - (void)webViewDidFinishLoad:(UIWebView *)webView
      {
          [self.spinner stopAnimating];
          // Remove  spinner in StatusBar it Optional for you
          [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-11-03
        • 2013-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多