UIWebview альбомное форматирование с окном просмотра - PullRequest
2 голосов
/ 12 мая 2009

Я использую метапорт, как упомянуто здесь Почему UIWebView сокращает изображения? для UIWebView. Это хорошо форматирует портрет, и мне не нужно компенсировать странное масштабирование. Однако после поворота на ландшафт я не могу воспользоваться дополнительной шириной. Это значит, что я хотел бы поместить больше текста в одну строку для ландшафта. Все в масштабе 1.0. Есть ли способ изменить область просмотра до 0,75 при масштабировании при вращении и вернуться к 1,0 в портретной ориентации?

1 Ответ

0 голосов
/ 06 июля 2011

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

-(NSString *) setViewportWidth:(CGFloat)inWidth {
    NSString *result = [_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"(function ( inWidth ) { "
        "var result = ''; "
        "var viewport = null; "
        "var content = 'width = ' + inWidth; "
        "var document_head = document.getElementsByTagName('head')[0]; "
        "var child = document_head.firstChild; "
        "while ( child ) { "
            "if ( null == viewport && child.nodeType == 1 && child.nodeName == 'META' && child.getAttribute( 'name' ) == 'viewport' ) { "
                "viewport = child; "
                "content = child.getAttribute( 'content' ); "
                "if ( content.search( /width\\s=\\s[^,]+/ ) < 0 ) { "
                    "content = 'width = ' + inWidth + ', ' + content; "
                "} else { "
                    "content = content.replace( /width\\s=\\s[^,]+/ , 'width = ' + inWidth ); "
                "} "
            "} "
            "child = child.nextSibling; "
        "} "
        "if ( null != content ) { "
            "child = document.createElement( 'meta' ); "
            "child.setAttribute( 'name' , 'viewport' ); "
            "child.setAttribute( 'content' , content ); "
            "if ( null == viewport ) { "
                "document_head.appendChild( child ); "
                "result = 'append viewport ' + content; "
            "} else { "
                "document_head.replaceChild( child , viewport ); "
                "result = 'replace viewport ' + content; "
            "} "
        "} "
        "return result; "
    "})( %d )" , (int)inWidth]];

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