Настройка ширины и высоты UIWebView - PullRequest
6 голосов
/ 21 мая 2010

Мне нужно отрегулировать высоту и ширину UIWebView, чтобы весь текст отображался в представлении, и пользователю не нужно было прокручивать текст, чтобы прочитать текст.

Кто-нибудь знает, как его получить?

Ответы [ 3 ]

8 голосов
/ 21 мая 2010
webView.scalesPageToFit = YES;

См. Также: UIWebView + SFHFStringMetrics

4 голосов
/ 21 мая 2010

Надеюсь, это укажет вам правильное направление.

Вызвав метод stringByEvaluatingJavaScriptFromString: в UIWebView, вы можете запустить JavaScript из своего приложения в UIWebView.

// get the height of your content
[webview stringByEvaluatingJavaScriptFromString:@"document.getElementById('id_of_content_container').offsetHeight;"];

// get the width of your content
[webview stringByEvaluatingJavaScriptFromString:@"document.getElementById('id_of_content_container').offsetHeight;"];

Выше будет возвращен объект NSString с шириной и высотой любого элемента, который вы передаете в функцию getElementById. Обладая этой информацией, вы сможете изменить размер UIWebView в соответствии с вашим контентом. Пример:

CGRect frame = webView.frame;
frame.size.width = 100;
webView.frame = frame;

Вам также может понадобиться сбросить scalesPageToFit еще раз, чтобы содержимое было перенастроено на новый размер кадра.

Другим вариантом будет обнаружение window.height и window.width на стороне HTML и использование JavaScript для настройки содержимого в соответствии с аспектами UIWebView.

1 голос
/ 21 мая 2010

На UIWebView нет специальных условий для изменения размера в соответствии с содержимым. Вы можете установить для свойства scalesPageToFit значение YES, чтобы уменьшить масштаб содержимого, или сделать изображение достаточно большим, чтобы вместить страницы наиболее разумного размера. Из вашего вопроса я делаю вывод, что вы показываете контент, который вы контролируете. Если нет, я не уверен, что есть простой программный способ достичь того, чего вы хотите.

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