UIWebView重绘在视图上确实出现了,我该如何防止这种情况?

时间:2016-08-19 06:49:28

标签: ios objective-c swift uiwebview

我正在使用UIWebView正在开发一个应用程序,现在遇到下面的问题请帮我解决一下。

  • 在我的UIWebView中,我在其中显示了一些来自String的HTML内容。
  • 但是,当我转到另一个ViewController并返回时,它会变为白色一秒钟然后再次绘制我的HTML内容。

有什么方法可以阻止这种情况吗?我的html内容没有变化,所以我可以将其设置为固定内容或更快地绘制它吗?

这就是我在webview中设置html的方式:

webView.loadHTMLString(htmlData, baseURL: nil)

2 个答案:

答案 0 :(得分:2)

您的HTMl代码没有变化,因此将webView加载代码放在viewDidLoad内而不是viewDidAppear,因为viewDidAppear始终在view时调用出现,viewDidLoadview加载时被称为单一时间。

答案 1 :(得分:2)

您可以在应用程序的生命周期中执行一次指导webview的代码,或者相应地进行自定义。

// if you are navigating your application using navigation controller enables you to come back to the rootview without executing whole code of that class associated with view.
// this doesn't apply the whole life cycle of view controller
[self.navigationController pushViewController:vc animated:YES];

// if you navigating through below code this apply the whole life cycle concept of view controller.
[self presentViewController:vc animated:NO completion:nil];
  

你必须看看视图控制器的生命周期这里是一个有用的apple doc

viewController生命周期短信

  • ViewDidLoad - 在您创建类并从xib加载时调用。非常适合初始设置和一次性工作。

  • ViewWillAppear - 在视图出现之前调用,适用于隐藏/显示字段或每次在视图可见之前要执行的任何操作。由于您可能会在视图之间来回切换,因此每次您的视图即将出现在屏幕上时都会调用此视图。

  • ViewDidAppear - 在视图出现后调用 - 开始制作动画或从API加载外部数据的好地方。

  • ViewWillDisappear / DidDisappear - 与ViewWillAppear / ViewDidAppear相同。

  • ViewDidUnload / ViewDidDispose - 在Objective C中,这是你清理和发布东西的地方,但这是自动处理的,所以你真的不需要这么做。