Ios UIWebView在视图上重画时确实出现,如何防止出现这种情况?

Ios UIWebView在视图上重画时确实出现,如何防止出现这种情况?,ios,objective-c,swift,uiwebview,Ios,Objective C,Swift,Uiwebview,我正在使用UIWebView开发一个应用程序,现在有一个问题列在下面请帮我解决 在我的UIWebView中,我显示了其中字符串的一些HTML内容 但是,当我转到另一个ViewController并返回时,它会变白一秒钟,然后再次绘制HTML内容。 有没有办法防止这种情况?我的html内容不会更改,所以我可以将其设置为固定内容或其他可以更快绘制的内容吗 以下是我在webview中设置html的方式: webView.loadHTMLString(htmlData, baseURL: nil)

我正在使用
UIWebView
开发一个应用程序,现在有一个问题列在下面请帮我解决

  • 在我的UIWebView中,我显示了其中字符串的一些HTML内容
  • 但是,当我转到另一个
    ViewController
    并返回时,它会变白一秒钟,然后再次绘制HTML内容。
有没有办法防止这种情况?我的html内容不会更改,所以我可以将其设置为固定内容或其他可以更快绘制的内容吗

以下是我在webview中设置html的方式:

webView.loadHTMLString(htmlData, baseURL: nil)

HTMl代码没有更改,因此将
webView
加载代码放在
viewDidLoad
中,而不是
viewDidAppear
,因为
viewDidAppear
总是在显示
视图时调用,其中,当加载
视图时,as
viewDidLoad
被一次性调用。

您的HTMl代码没有改变,因此将
webView
加载代码放在
viewDidLoad
中,而不是
viewDidAppear
,因为
viewDidAppear
总是在出现
视图时调用,其中,当加载您的
视图时,作为
viewdiload
调用一次。

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

您必须了解视图控制器的生命周期,这里是一个有用的

viewController生命周期简短说明

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

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

  • ViewDidDisplay-在视图出现后调用-是启动动画或从API加载外部数据的好地方

  • ViewWillEnglish/DidEnglish-与ViewWillEnglish/ViewDidEnglish的想法相同

  • ViewDidUnload/ViewDidDispose-在目标C中,这是您清理和发布内容的地方,但是这是自动处理的,所以您不需要在这里做太多

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

您必须了解视图控制器的生命周期,这里是一个有用的

viewController生命周期简短说明

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

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

  • ViewDidDisplay-在视图出现后调用-是启动动画或从API加载外部数据的好地方

  • ViewWillEnglish/DidEnglish-与ViewWillEnglish/ViewDidEnglish的想法相同

  • ViewDidUnload/ViewDidDispose-在目标C中,这是您清理和发布内容的地方,但是这是自动处理的,所以您不需要在这里做太多


当您更改视图控制器时,是否会破坏您的webview?显示您在webviewwebView中加载html代码的位置。loadHTMLString(htmlData,baseURL:nil)您可以(通过编辑您的问题)向我们显示您在webview中加载内容的时间(以何种方式)吗?我正在UITableViewCell中设置UIWebView内容。因此,我在:func tableView(tableView:UITableView,cellForRowAtIndexPath-indexath:nsindexath)中调用了该方法。当您更改视图控制器时,是否会破坏您的webview?显示在webviewwebView中加载html coten的代码。loadHTMLString(htmlData,baseURL:nil)您可以(通过编辑您的问题)向我们展示ans何时如何(在哪个方法中)加载html coten您是否正在Web视图中加载内容?我正在UITableViewCell中设置UIWebView内容。因此我在:func tableView(tableView:UITableView,cellForRowAtIndexPath:nsindepath)中调用该方法,UIWebView位于UITableViewCell中。所以我在cellForRowAtIndexPath中调用它。@TheBook然后你在
视图中重新加载
表视图
,或者
视图将出现
,检查并在
视图加载
中重新加载数据。我应该做什么来修复它?正确地检查我上面的注释。如果您正在调用
tableView.reloadData
inside
viewdide
则从那里删除并将其放入
viewdideload
中。哇,事实就是这样!谢谢UIWebView位于UITableViewCell中。所以我在cellForRowAtIndexPath中调用它。@TheBook然后你在
视图中重新加载
表视图
,或者
视图将出现
,检查并在
视图加载
中重新加载数据。我应该做什么来修复它?正确地检查我上面的注释。如果您正在调用
tableView.reloadData
inside
viewdide
则从那里删除并将其放入
viewdideload
中。哇,事实就是这样!谢谢
// 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];