Как отобразить UIWebView с правильным масштабом масштабирования в альбомной ориентации - PullRequest
3 голосов
/ 28 апреля 2011

Я создаю UIWebView и настраиваю автоповорот следующим образом:

- (void)loadView
{
    self.view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)] autorelease];

    UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
    webview.delegate = self;
    webview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg_darkgreen_320x312.png"]];
    webview.dataDetectorTypes = UIDataDetectorTypeLink;
    webview.multipleTouchEnabled = YES;
    webview.scalesPageToFit = YES;
    webview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [webview loadHTMLString:@"<meta name=\"viewport\" content=\"width=320\">content ..." baseURL:nil];
    [self.view addSubview:webview];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

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

Проблема заключается в том, что если я уменьшу или немного увеличу изображение в портретном режиме, а затем поверну его в альбомной ориентации, веб-просмотр все еще увеличится с тем же размером портретного режимаи имеет черное пространство, как на картинке> http://cl.ly/1o3c4712053C3T2C2H2z

Его ширина в альбомной ориентации правильная, 480px (вы можете видеть, что его полоса прокрутки находится в большей правой части экрана).Я не понимаю, почему веб-просмотр не отображает полный экран.

Что я делаю не так?Есть ли способ это исправить?Пожалуйста, помогите.

Заранее спасибо.

1 Ответ

0 голосов
/ 23 февраля 2015

Для достижения эффекта вам нужно установить zoomScale на 0 при вращении. Смотрите мой полный ответ здесь: Содержимое UIWebView не корректируется для нового кадра после поворота

...