Memory UIWebView旋转和内存问题

Memory UIWebView旋转和内存问题,memory,uiwebview,ipad,Memory,Uiwebview,Ipad,我有一个加载嵌入式XHTML的UIWebView,如下所示: body = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; body.scalesPageToFit = YES; body.backgroundColor = [UIColor scrollViewTexturedBackgroundColor]; body.au

我有一个加载嵌入式XHTML的UIWebView,如下所示:

body = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
body.scalesPageToFit = YES;
body.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
body.autoresizingMask =  UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

[self.view addSubview:body];
[body loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"article16" ofType:@"xhtml"]isDirectory:NO]]];
这个XHTML有很多图像,当我旋转设备时,会收到一些内存警告,有时应用程序会崩溃。 如果我移除自动调整大小掩码,特别是UIViewAutoresizingFlexibleWidth(我只尝试过UIViewAutoResizingFlexibleLeLeLeftMargin和UIViewAutoresizingFlexibleRightMargin,没有问题),内存警告将停止,应用程序不再崩溃

如果我移除所有自动调整大小掩码,并在didRotate或willRotate中设置新的webView框架,我会收到与使用UIViewAutoresizingFlexibleWidth相同的警告

有一个叫做Atomic Web的应用程序可以打开相同的XHTML并在没有内存警告的情况下旋转,safari也可以打开它,但是如果我创建一个只有UIWebView的项目,该应用程序有时会崩溃

有人知道这可能是什么?我可以用其他方式设置webview框架吗?为什么我不能使用自动调整大小的面具


感谢您的关注。

我也看到了内存问题,但在UIScrollView中的容量略有不同。当您的UIScrollView子类(包括UIWebView)将[UIColor scrollViewTexturedBackgroundColor]属性用作背景色时,它似乎会消耗大量内存


我建议把它改成普通的灰色。我注意到,仅仅做了这个简单的更改,activity monitor仪器报告的内存就减少了7 MB。

我也看到了内存问题,但在UIScrollView中的容量略有不同。当您的UIScrollView子类(包括UIWebView)将[UIColor scrollViewTexturedBackgroundColor]属性用作背景色时,它似乎会消耗大量内存

我建议把它改成普通的灰色。我注意到,通过简单的更改,activity monitor仪器报告的内存减少了7 MB。

试试:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
}

尝试:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
}

来自

非常感谢您!我在动态更改CSS,它一直在崩溃。现在,我在webview容器上设置了背景,并在webview上设置了透明背景。它工作得很好!非常感谢你!我在动态更改CSS,它一直在崩溃。现在,我在webview容器上设置了背景,并在webview上设置了透明背景。它工作得很好!