Каждый раз, когда я загружаю новую страницу с UIWebView
, страница, загруженная до загрузки, отображается на короткое время.Как удалить кеш из UIWebview или dealloc UIWebview
Как я могу очистить этот кеш? Другая возможность - dealloc UIWebview
. Я пробовал это, но мой UIWebView
всегда «пуст». Как следует делать в этом случае alloc
и dealloc
?
Я заметил, что UIWebView
потребляет около 10 МБ ОЗУ. Теперь загружается UIWebView
вместе с ViewController
. И просмотр автореализован, а также UIWebView
. Разве не было бы лучше отключать WebView каждый раз?
Решение:
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
CGRect frame = CGRectMake(0, 0, 320, 480);
self.webView = [[[UIWebView alloc]initWithFrame:frame] autorelease];
self.webView.scalesPageToFit = YES;
[self.view addSubview:self.webView];
}
- (void) viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self.webView removeFromSuperview];
self.webView = nil;
}
Что такое ExampleFrame, webViewBed и exampleView? Что такое autoresizingMask? Я не реализую протокол UIWebViewDelegate, поэтому мне не нужен делегат. 'addSubview' не работает для меня, потому что мой' UIViewController' не поддерживает это. Насколько я вижу, вы не публикуете веб-представление на 'viewDidDisappear'. Вы удаляете его только из супервизора и устанавливаете его в 'nil'. Я пробовал ваш подход, и я вижу только белый экран. Я редактировал свой вопрос, чтобы вы могли видеть мой код. – testing
exampleFrame - это только размер создаваемого вами UIWebView. webViewBed не должен быть частью этого примера, он не полезен в этом контексте. exampleView - это представление, к которому вы добавляете UIWebView. И, конечно, вы добавляетеSubview() в Views, а не для просмотра контроллеров. Поэтому вам нужно будет сделать что-то вроде [viewController.view addSubview: ...]. Я выпускаю webview, это свойство (см. «Я»?), Поэтому вы можете установить его на ноль, и он будет выпущен. – mips
Perfect !! Это единственное решение в Интернете, которое я нашел для работы !! – Ravikant