Bản thân tôi đã gặp sự cố này và tôi muốn vừa có thể đặt chiều rộng, vừa cập nhật nó khi xoay và cho phép người dùng mở rộng và thu phóng trang (câu trả lời hiện tại cung cấp câu trả lời đầu tiên nhưng ngăn chặn phần sau như một tác dụng phụ ) .. vì vậy tôi đã nghĩ ra một bản sửa lỗi giữ cho chiều rộng của khung nhìn đúng với hướng, nhưng vẫn cho phép phóng to, mặc dù nó không phải là siêu thẳng về phía trước.
Đầu tiên, hãy thêm đoạn mã Javascript sau vào trang web bạn đang hiển thị:
<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>
Sau đó, trong - (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) fromInterfaceOrientation phương thức của bạn, hãy thêm:
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];
Có thể thực hiện tinh chỉnh bổ sung bằng cách sửa đổi nhiều cài đặt nội dung cửa sổ xem:
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
Ngoài ra, tôi hiểu rằng bạn có thể đặt trình nghe JS cho kích thước lớn hoặc thứ gì đó tương tự để kích hoạt thay đổi tỷ lệ, nhưng điều này đã hiệu quả với tôi khi tôi đang làm điều đó từ các khung giao diện người dùng Cocoa Touch.
Hy vọng điều này sẽ giúp ai đó :)