2013-11-30 3 views
0

В тестовом приложении iOS я добавил UIWebView, который отображает веб-страницу. Я хочу не показывать верхний и нижний колонтитулы этой веб-страницы. Верхний и нижний колонтитулы - это почти 100 пикселей. Есть ли способ, которым я могу просто скрыть эту часть в UIWebView?iOS: Скрыть определенную порцию UIWebView

Что я уже пробовал, так это то, что я переместил UIWebView в свой StoryBoard таким образом, что 100 пикселей находятся за панелью навигации. Это делает содержимое UIWebView точно таким, какой я хочу, но пользователь все еще может его видеть, если он прокручивает и удерживает, а также когда он отскакивает. Это не хорошее решение для представления. Вторая вещь, которую я сделал, - отключить эффект отскока, но это делает все очень фиксированным, и это также не очень хорошее решение.

Как я могу скрыть определенную часть содержимого вверху и внизу в UIWebView? Благодаря!

ответ

0

Использование Java Script позволяет достичь этого. Ограничьте содержимое прокрутки веб-браузера таким образом, чтобы оно не увеличивалось, когда оно достигнет в какой-то момент.

Или это может также быть полезным для Вас: iOS : detect UIWebView reaching the top or bottom

1

Вы можете скрыть заголовок/колонтитул, выполнив JavaScript, который скрывает элементы DOM с помощью CSS или просто удалить их после загрузки документа (в методе делегата - (void)webViewDidFinishLoad:(UIWebView *)webView).

Say удалить заголовок элемента:

NSString *js = @"var headerElement = document.getElementsByTagName('header')[0]; if(e){ e.remove(); }"; 
[webView stringByEvaluatingJavaScriptFromString: js]; 

Или вставить CSS для скрытия/нижнего колонтитула:

NSString *js = @"var styleTag = document.createElement('style'); styleTag.innerText = "header, footer {display: none;}"; document.body.appendChild(styleTag);"; 
[webView stringByEvaluatingJavaScriptFromString: js]; 

Однако, выше 2 подхода принимают эффекты после того, как веб-страницы анализируется и показано пользователь, поэтому пользователь может заметить, что нижний колонтитул и заголовок отображаются в течение небольшого периода времени.

Если вам действительно нужно, чтобы пользователь не видел вспышку заголовка/нижнего колонтитула, вам следует рассмотреть возможность загрузки содержимого html в расширенном режиме и вставки CSS в контент, а затем показать веб-страницу, вызвав метод UIWebView – loadHTMLString:baseURL:.

Смежные вопросы