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内容李>
- 但是,当我转到另一个
并返回时,它会变白一秒钟,然后再次绘制HTML内容。ViewController
webView.loadHTMLString(htmlData, baseURL: nil)
HTMl代码没有更改,因此将
webView
加载代码放在viewDidLoad
中,而不是viewDidAppear
,因为viewDidAppear
总是在显示视图时调用,其中,当加载视图时,asviewDidLoad
被一次性调用。您的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
insideviewdide
则从那里删除并将其放入viewdideload
中。哇,事实就是这样!谢谢UIWebView位于UITableViewCell中。所以我在cellForRowAtIndexPath中调用它。@TheBook然后你在视图中重新加载表视图
,或者视图将出现
,检查并在视图加载
中重新加载数据。我应该做什么来修复它?正确地检查我上面的注释。如果您正在调用tableView.reloadData
insideviewdide
则从那里删除并将其放入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];