【问题标题】:UIActivityIndicator does not show/hide based on the loading of the UIWebViewUIActivityIndi​​cator 不会根据 UIWebView 的加载显示/隐藏
【发布时间】:2023-03-31 08:14:01
【问题描述】:

我想用 UIWebView 和 UIActivityIndi​​catorView 在 UIViewController 上加载 URL,但 UIActivityIndi​​cator 永远不会出现,UIWebView 永远不会加载 URL。

这是我的代码:

- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    self.title = @"Web";

    [self displayURL:[NSURL URLWithString:@"(Website)"]];
}

-(void) webViewDidFinishLoad:(UIWebView *)webView {
   [self.loadView stopAnimating];
   self.loadView.hidden = YES;
}

-(void) displayURL:(NSURL *) aURL {
    self.web.delegate = self;

    self.loadView.hidden = NO;
    [self.loadView startAnimating];

    [self.web loadRequest:[NSURLRequest requestWithURL:aURL]];
}

【问题讨论】:

    标签: ios objective-c ipad uiwebview uiwebviewdelegate


    【解决方案1】:

    如果你通过代码添加你的webView,你需要添加

    [self.view addSubview: web];
    

    创建webView之后,当然需要添加UIActivityIndi​​catorView作为webView或者superView的子View,所以需要添加[web addSubview: loadView]或者[self.view insertSubview: loadView aboveSubview: web];。

    关于网址,如果您的网站网址如 www.google.com,则需要将 @"(Website)" 更改为真实网址。如果你的网站是你项目中复制的文件,需要将[NSURL URLWithString: ];改为[NSURL fileURLWithPath:[NSBundle mainBundle][pathForResource: ofType:]];。

    【讨论】:

    • 以防万一这是针对 iOS 9 构建的,您需要确保您使用的 URL 是通过 SSL 保护的(例如,'google.com'而不是'@987654322 @)。否则什么都不会加载,iOS 会抱怨。另一种选择当然是禁用 URL 或所有内容的应用程序传输安全性。但我只是想添加这个以了解它:)
    • 我真的不需要添加 webView,因为我有一个带有 webView 和 UIActivityIndi​​cator 的 .xib 文件,并且我的代码上没有“(website)”,该 URL 是 Apple Developer Program URL。感谢您的回答,但我仍然遇到同样的问题,当我使用 webViewController 启动应用程序时会发生任何事情
    • 感谢您的帮助,我不知道我的代码有什么问题
    【解决方案2】:

    问题的表述真的很糟糕。

    • UIWebViewController 不起作用 UIWebViewController 不存在,你说的是 UIViewController 中的 UIWebView

    • 代码非常不完整

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      相关资源
      最近更新 更多