Memory UIWebView旋转和内存问题
我有一个加载嵌入式XHTML的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
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上设置了透明背景。它工作得很好!