Черная область на UIWebView во время загрузки

Я заметил, что мой UITabBar получает темно-серый цвет, когда я преформаю loadRequest в моем UIWebView.

Если я прокручу свой WebView во время loadRequest, появится черная область

введите описание изображения здесь введите описание изображения здесь

Как я могу удалить это?

Ответы

Ответ 1

У меня была эта проблема раньше, и она связана с вложением содержимого вашего UIWebView. Эта черная область появляется везде, где у вас есть нижняя вставка, установленная в прокрутке. Я смог исправить это, установив свойство opaque webview:

self.opaque = NO;

Ответ 2

Установите для UIWebView непрозрачный NO и чистый цвет фона одновременно:

введите описание изображения здесь

Ответ 3

Вам нужно установить цвет фона для очистки, а также сделать webView непрозрачным. Это не работает, если вы не изменяете backgroundColor для очистки.

self.opaque = NO;
self.backgroundColor = [UIColor clearColor];

Ответ 4

Я не согласен с предлагаемыми решениями здесь. Рекомендуемое решение установки opaque и backgroudColor скрывает реальную проблему. Если вы это сделаете, то самый передний UIWebBrowserView не будет охватывать весь кадр черным прямоугольником и будет прозрачным → но область, которая ранее была черной, останется неиспользованной, а ваш контент t будет отображаться там.

Я извлек UIWebBrowserView и распечатал его описания при изменении размера, и мне кажется, что использует округленные значения для своего прямоугольника содержимого. Поскольку границы фрейма представления определяются как CGFloat, вы получаете проблемы округления при масштабировании окна просмотра веб-браузера (изменение размера/ширины представления обтекания на нецелые значения).

Мне удалось решить эту проблему, округляя аргументы setFrame моего UIWebView:

UIWebView *myWebView;
....
[myWebView setFrame:CGRectMake(newX, newY, floor(newWidth), floor(newHeight)];