UIWebView - Потянув вниз веб-представление, а затем преобразовав его в изображение, вы видите пустую полосу вверху и недостающую информацию внизу?

UIWebView - Потянув вниз веб-представление, а затем преобразовав его в изображение, вы видите пустую полосу вверху и недостающую информацию внизу?

Используя этот код, сделайте снимок экрана длинного и тонкого веб-вида. Он работает нормально, но если я принудительно потяну его вниз, а затем сделаю снимок экрана, в зависимости от установленного цвета фона, я получаю пустую полосу сверху и такой же размер, отсутствующий внизу.

Я не понимаю? Как это должно работать?

- (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;

}

1 ответ

Решение

Очевидно, Apple решила, что UIWebView должен настроить вид прокрутки, который он содержит, для вставки, так как iOS 7 вышла.

Чтобы отключить это и полученную головную боль, я должен был использовать:

[self setAutomaticallyAdjustsScrollViewInsets = NO];

Или вы можете выбрать View Controller в раскадровке, где находится веб-представление, и снимите флажок с этого:

Настройте вкладки просмотра прокрутки

Другие вопросы по тегам