0

UIWebView - Web ビューをプルダウンして画像に変換すると、上部に空白の帯が表示され、下部に情報が表示されませんか?

このコードを使用して、細長い Web ビューの画像スクリーンショットを撮ります。正常に動作しますが、強制的にプルダウンしてからスクリーンショットを撮ると、設定した背景色に応じて、上部に空白のバンドが表示され、下部に同じサイズが表示されません。

理解できません?これはどのように機能するはずですか?

- (UIImage *)convertToImage
{

    // tempframe to reset view size after image was created
    CGRect originalFrame         = self.frame;

    // set new Frame
    CGRect frameForEntirePage = self.frame;
    frameForEntirePage.size.height  = [self sizeThatFits:[[UIScreen mainScreen] bounds].size].height;
    self.frame = frameForEntirePage;

    // do image magic
    UIGraphicsBeginImageContext([self sizeThatFits:[[UIScreen mainScreen] bounds].size]);

    CGContextRef resizedContext = UIGraphicsGetCurrentContext();
    [self.layer renderInContext:resizedContext];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    // reset Frame of view to origin
    self.frame = originalFrame;

    return image;

}
4

1 に答える 1

0

どうやらAppleは、UIWebViewに含まれるスクロールビューをインセットに調整する必要があると判断したようです。これは、iOS 7が登場してからです。

これと結果として生じる頭痛を無効にするには、次を使用する必要がありました。

[self setAutomaticallyAdjustsScrollViewInsets = NO];

または、Web ビューが存在するストーリーボードでビュー コントローラーを選択し、これをオフにすることもできます。

スクロール ビュー インセットの調整

于 2014-10-21T19:12:18.237 に答える