UIWebView の、フレームサイズとビューポートサイズの関連がよくわからなくて悩む

(Comments)

iOS Simulator 8.4

こんな感じで、画面より少し小さい UIWebView を作り、

CGSize displaySize = 画面サイズ
int leftOffsetPercent = 5;
int topOffsetPercent = 5;

CGRect webViewFrame = CGRectMake(
        displaySize.width / 100 * leftOffsetPercent,
        displaySize.height / 100 * topOffsetPercent,
        displaySize.width / 100 * (100 - leftOffsetPercent * 2),
        displaySize.height / 100 * (100 - topOffsetPercent * 2)
);
self.webView = [[UIWebView alloc] initWithFrame:webViewFrame];

このような ViewPort Meta を指定してある HTML を読み込んで表示してみたら

<meta name="viewport" content="width=device-width, initial-scale=1">

横スクロールバーが出て、WebView にコンテンツが入りきらなかった。

iPhone6 なので、displaySize.width は 375, webView.frame.size.width は 337.5 になってるが、 どうやらビューポートの device-width は、この375 で判断されてるようだ。

試しに、ブラウザ内で window.innerWidth を取得してみると 338 だが、 document.body.clientWidth を見てみると 375 だった。なぜこうなるのか理解できない。

横スクロールバーを消す方法に悩んだが、結局 HTML 内で、以下のように meta タグを動的に書き換えてみた

var viewPortMeta = $('meta[name="viewport"]');
viewPortMeta.attr('content', "width=" + (window.innerWidth - 1) + ", initial-scale=1");

かなり強引な方法だとは思っているが、うまくいった。横スクロールバーが消えた。

Currently unrated

Comments

Recent Tweets

  • ytyng

    ytyng @ytyng

    apple developer の、テスト用デバイスのUDIDを1年ごとにチェックして、古い端末を消しちゃうやつ チェックボックスを入れたのを残すのか、消すのかの判断まちがって、全部のUDID消えたわ
    2 months, 2 weeks ago

  • ytyng

    ytyng @ytyng

    うちの会社 TORICO の 代表が今TV出てます #漫画全巻ドットコム #激レアさんを連れてきた
    2 months, 3 weeks ago

  • ytyng

    ytyng @ytyng

    Proofpoint にブロックされているIPアドレスからでも icloud など Apple メールアドレスにメール送信されてもブロックされてない…?
    3 months, 2 weeks ago

Recent Posts

Archive

2020
2019
2018
2017
2016
2015
2014
2013
2012
2011

Categories

Authors

Feeds

RSS / Atom