【问题标题】:Issue in UIActivityIndicatorView in iPhone?iPhone中UIActivityIndi​​catorView的问题?
【发布时间】:2012-10-16 09:26:13
【问题描述】:

目前我正在使用 iphone 应用程序,使用 UIWebView(在 presentModelViewController 中显示的网页)在屏幕上显示网页,然后我添加 UIActivityIndi​​catorView 以显示在加载 url 请求中,但 UIActivityIndi​​catorView 没有显示在屏幕上,我试过了我的水平最好,请帮助我。

提前致谢

我试过了:

- (void)viewDidLoad
{
    [super viewDidLoad];

    activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activity.frame=CGRectMake(140, 240, 40, 40);
    [self.view addSubview:activity]; 

    web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
    web.delegate=self;
    web.backgroundColor=[UIColor clearColor];
    NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [web loadRequest:req];
    [self.view addSubview:web];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{
    [activity stopAnimating];  
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{     
    [activity startAnimating];   
}

【问题讨论】:

  • 尝试先添加网页视图,然后添加活动视图,否则网页视图可能会隐藏活动视图。
  • 您可以尝试将您的活动指示器添加到 webview 中,例如:-[web addSubview:activity];

标签: iphone ios webview uiactivityindicatorview presentmodalviewcontroller


【解决方案1】:

将您的活动指示器视图添加到您的 webView 中,如下所示:-

 - (void)viewDidLoad
 {
[super viewDidLoad];

activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activity.frame=CGRectMake(140, 240, 40, 40);


web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
web.delegate=self;
web.backgroundColor=[UIColor clearColor];
NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[web loadRequest:req];
[web addSubview:activity];
[self.view addSubview:web];
}

 - (void)webViewDidFinishLoad:(UIWebView *)webView 
{
[activity stopAnimating];  
}

- (void)webViewDidStartLoad:(UIWebView *)webView
{     
[activity startAnimating];   
}

【讨论】:

    【解决方案2】:

    试试这个,

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
        web.delegate=self;
        web.backgroundColor=[UIColor clearColor];
        NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"];
        NSURLRequest *req = [NSURLRequest requestWithURL:url];
        [web loadRequest:req];
        [self.view addSubview:web];
    
        activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
        activity.frame=CGRectMake(140, 240, 40, 40);
        [self.view addSubview:activity];
        [self.view bringSubviewToFront:activity];
    }
    

    【讨论】:

    • 请查看编辑。您的代码不起作用,因为您的活动指示器被 webview 隐藏。将活动指示器放在 web 视图上方并将活动指示器放在前面可以解决这个问题。希望这对您有所帮助。 :)
    【解决方案3】:

    定义 UIWebView 后定义 UIActivityIndi​​catorView。

      - (void)viewDidLoad
        {
            [super viewDidLoad];
    
    
            web = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
            web.delegate=self;
            web.backgroundColor=[UIColor clearColor];
            NSURL *url = [NSURL URLWithString:@"http://wrwr.rww.com/erqrrq"];
            NSURLRequest *req = [NSURLRequest requestWithURL:url];
            [web loadRequest:req];
            [self.view addSubview:web];
    
         activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
            activity.frame=CGRectMake(140, 240, 40, 40);
            [self.view addSubview:activity]; 
        }
    

    【讨论】:

      【解决方案4】:

      将子视图添加到超级视图的顺序很重要。 UIActivityIndicatorView 被添加,然后 UIWebView 覆盖它。如果您先添加 UIWebView,即

      [self.view addSubview:web];
      [self.view addSubview:activity];
      

      UIActivityIndicatorView 将覆盖UIWebView

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        相关资源
        最近更新 更多