Странные отступы / поля при использовании UIWebView - PullRequest
22 голосов
/ 14 марта 2010

Я создаю приложение с UIWebView, которое содержит рекламу. Размер представления такой же, как и у самой рекламы (изображения). Тем не менее, внутри UIWebView внутри и слева от изображения есть какое-то белое поле / отступ. Проверьте связанное изображение:

alt text

На самом деле, изображение также сдвигается вниз и вправо из-за этого отступа.

Есть идеи, как мне удалить белую прокладку?

Заранее спасибо!

Ответы [ 3 ]

51 голосов
/ 14 марта 2010

По сути, все браузеры добавляют эти пробелы по краям страницы для обратной совместимости с Netscape 1. В HTML, который вы загружаете в веб-представление, вы можете использовать CSS, чтобы удалить это:

body { margin: 0; padding: 0; }

Если вы загружаете не HTML-код в веб-представление, а просто прямой URL-адрес файла изображения, я предлагаю либо а) обернуть его в некоторый базовый HTML-код (заголовок, тело, тег img), либо b ) загрузить изображение самостоятельно (скажем, с помощью NSURLConnection) и отобразить его непосредственно в UIImageView.

39 голосов
/ 27 сентября 2012

Я знаю, что это старый пост, но на тот случай, если у кого-то возникнут те же проблемы. Мне удалось исправить эту проблему, добавив следующий код в метод делегата webViewDidFinishLoad.

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
    [webView stringByEvaluatingJavaScriptFromString:padding];
}

Посмотрите на первый баннер с добавленным выше кодом. И нижний без кода.

enter image description here

3 голосов
/ 12 июля 2016

В качестве поправки к блестящему ответу @ thenextmillionair введите код:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
    NSString *padding = @"document.body.style.margin='0';document.body.style.padding = '0'";
    [webView stringByEvaluatingJavaScriptFromString:padding];
}

в отличие от webViewDidFinishLoad. Когда код находится в webViewDidFinishLoad, вы видите, что UIWebView переместился сам после появления на экране с отступом. Помещая его в webViewDidStartLoad, вы устраняете это уродство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...