У мене була ця проблема сама, і я хотів, щоб обидва мали змогу встановити ширину, і щоб вона оновлювалася при повороті та дозволяла користувачеві масштабувати та масштабувати сторінку (поточна відповідь надає першу, але запобігає пізній як побічний ефект ) .. отже, я придумав виправлення, яке підтримує корекцію ширини огляду для орієнтації, але все ж дозволяє масштабувати, хоча це не надто прямо вперед.
Спочатку додайте такий Javascript до веб-сторінки, яку ви відображаєте:
<script type='text/javascript'>
function setViewPortWidth(width) {
var metatags = document.getElementsByTagName('meta');
for(cnt = 0; cnt < metatags.length; cnt++) {
var element = metatags[cnt];
if(element.getAttribute('name') == 'viewport') {
element.setAttribute('content','width = '+width+'; maximum-scale = 5; user-scalable = yes');
document.body.style['max-width'] = width+'px';
}
}
}
</script>
Потім у вашому - (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) відInterfaceOrientation методу додайте:
float availableWidth = [EmailVC webViewWidth];
NSString *stringJS;
stringJS = [NSString stringWithFormat:@"document.body.offsetWidth"];
float documentWidth = [[_webView stringByEvaluatingJavaScriptFromString:stringJS] floatValue];
if(documentWidth > availableWidth) return;
stringJS = [NSString stringWithFormat:@"setViewPortWidth(%f);",availableWidth];
[_webView stringByEvaluatingJavaScriptFromString:stringJS];
Додаткове налаштування можна зробити, змінивши більше налаштувань вмісту порталу перегляду:
http://www.htmlgoodies.com/beyond/webmaster/toolbox/article.php/3889591/Detect-and-Set-the-iPhone--iPads-Viewport-Orientation-Using-JavaScript-CSS-and-Meta-Tags .htm
Крім того, я розумію, що ви можете поставити JS-прослуховувач для onresize або щось подібне, щоб викликати масштабування, але це спрацювало для мене, оскільки я роблю це з фреймворків інтерфейсу Cocoa Touch.
Сподіваюся, це комусь допомагає :)