Tôi có vấn đề này, và tôi muốn cả hai có thể đặt chiều rộng và cập nhật xoay vòng và cho phép người dùng chia tỷ lệ và thu phóng trang (hiện tại câu trả lời cung cấp đầu tiên nhưng ngăn cản sau này như là một tác dụng phụ) .. vì vậy tôi đã đưa ra một sửa chữa mà giữ chiều rộng xem chính xác cho định 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, thê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 bạn - (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation) phương pháp fromInterfaceOrientation, thêm:
float availableWidth = [EmailVC webViewWidth];
NSString *stringJS;
stringJS = [NSString stringWithFormat:@"document.body.offsetWidth"];
float documentWidth = [[_webView stringByEvaluatingJavaScriptFromString:stringJS] floatValue];
if(documentWidth > availableWidth) return; // Don't perform if the document width is larger then available (allow auto-scale)
// Function setViewPortWidth defined in EmailBodyProtocolHandler prepend
stringJS = [NSString stringWithFormat:@"setViewPortWidth(%f);",availableWidth];
[_webView stringByEvaluatingJavaScriptFromString:stringJS];
Tweaking bổ sung có thể được thực hiện bằng cách sửa đổi nhiều cài đặt nội dung khung nhìn:
http://www.htmlgoodies.com/beyond/webmaster/toolbox/article.php/3889591/Detect-and-Set-the-iPhone--iPads-Viewport-Orientation-Using-JavaScript-CSS-and-Meta-Tags.htmNgoài ra, tôi hiểu bạn có thể đặt một người nghe JS cho onresize hoặc một cái gì đó như để kích hoạt rescaling, nhưng điều này làm việc cho tôi khi tôi đang làm nó từ Cocoa Touch UI frameworks.
Hy vọng điều này sẽ giúp ai đó :)
Tốt đọc về nó ở đây - https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag# Viewport_width_and_screen_width – vsync
Chỉ cần ghi chú - --- dấu tách cặp khóa phải là ',' không phải ';' --- cho lỗi phân tích cú pháp trong Google Chrome ('Lỗi phân tích cú pháp nội dung của phần tử meta: ';' không phải là khóa-giá trị hợp lệ Hãy sử dụng ',' thay thế.') – Bill