Ширина заполнения в (iPhone) UIWebView альбомной ориентации? - PullRequest
0 голосов
/ 16 февраля 2009

Я использую UIWebView с текстом в нем. Когда iPhone поворачивается в горизонтальное положение, текст не заполняет теперь более широкую ширину UIWebView. Я использую теги P (абзац), которые не должны влиять на ширину ландшафта. Разрывы линий, которые видны в портретной ориентации, остаются неизменными в альбомной ориентации. В Интерфейсном Разработчике я ничего не изменил. В Инспекторе IB размер веб-вида имеет все сплошные столбцы в разделе «Авторазмер», что означает, что он должен заполняться до ширины ландшафта, верно?

Ответы [ 4 ]

2 голосов
/ 21 июня 2010

Вот твик, хотя это не очень хорошая вещь, и что-то должно обрабатываться самим яблоком

Как вы заметили, все работает, когда WebView инициализируется в портретной ориентации, а затем вы поворачиваете его в альбомную ориентацию. Итак, что вы можете сделать, это всегда инициализировать ваше веб-представление с портретными границами, добавить селектор, который перезванивает через 2 ~ 3 секунды и устанавливает фрейм webView в соответствии с вашими требованиями.

Теперь, когда содержимое начало загружаться, когда размер фрейма вашего веб-просмотра соответствовал книжному (скажем, 320 460), преобразование веб-просмотра в альбомную автоматически отрегулирует веб-представление, если в вашем коде есть эта строка

[webViewObjet_ setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

Ниже приведен фрагмент кода

- (id) initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame])
    {
        webViewObjet_ = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
        .....
    }
}

- (void) webViewDidStartLoad:(UIWebView *)webView
{
    .....       
    [self performSelector:@selector(chuss) withObject:nil afterDelay:3];
    // call the function chuss after 3 second
}

- (void) chuss
{
    webViewObjet_.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
    [webViewObjet setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}
1 голос
/ 11 апреля 2009

Теперь попробовал с той же проблемой, наконец-то сделал это, посмотрев подробно на «WhichWayIsUp» - пример от Apple.

Для краткости:

1) Отключить в инспекторе представлений | - | и <->

2) `переключить режим просмотра с веб-просмотра на« Aspect Fill »

Et voila;)

Держи флюиды, Маньяк

0 голосов
/ 31 июля 2010

Звучит странно, но работает:

Если UIWebView находится внутри UINavigationController, все будет работать нормально. У меня была такая же проблема, поэтому я просто поместил ее в UINavigationController, и проблема исчезла.

По какой-то причине UINavigationController заставляет вращение работать как шарм.

0 голосов
/ 27 марта 2009

У меня такая же проблема. Перезагрузка не работает, единственное, что, кажется, немного помогает, это добавить следующую строку в код:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth;

(я помещаю его в функцию willAnimateFirstHalfOfRotationToInterfaceOrientation)

Он по-прежнему сохраняет небольшое белое поле справа, но это намного лучше, чем по умолчанию. Примечание: вы должны применить это к self.view, а не к экземпляру UIWebView, это не будет работать.

В ожидании решения от Apple ..

Pieter

...