Отображение фонового изображения в UIWebView - PullRequest
5 голосов
/ 23 июля 2010

Я пытаюсь создать собственное приложение, которое для всех целей и задач является HTML / CSS и Javascript.Все работает нормально, но когда загружается UIWebView, возникает задержка при заполнении DOM, получении изображений и т. Д.

Есть ли способ отобразить фоновое изображение в UIWebView или что-то позади этого?В идеале это будет то же самое, что и заставка, так что это не повлияет на процесс перехода от слеша к приложению.

Спасибо

Робби

Ответы [ 4 ]

30 голосов
/ 23 июля 2010

Мне пришлось сделать следующее в моем коде, чтобы получить прозрачный фон для моих UIWebViews - я обычно делаю это в методе viewDidLoad UIViewController

self.webView.backgroundColor = [UIColor clearColor];
self.webView.opaque = NO;

Я думаю, вы также можете внести эти изменения в Интерфейсный Разработчик в свойствах UIWebViews.

--- редактировать ---

А для фонового изображения вы можете просто поместить UIImageView позади UIWebView теперь, когда вы дали ему прозрачный фон.

8 голосов
/ 04 октября 2012
 webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"senthil.jpg"]];
3 голосов
/ 23 июля 2010

Я не верю, что вы хотите установить прозрачность UIWebView и показать изображение позади него.

Вместо этого у вас должен быть какой-то вид (возможно, с изображением, которое вы предлагаете, может быть, с UIIndicator и полупрозрачным видом, который «затемняет» страницу), который находится там до тех пор, пока UIWebView не загрузит его содержимое.

Для этого сначала ваш класс должен подписаться на протокол UIWebViewDelegate:

@interface myWebView : UIViewController <UIWebViewDelegate> {
  // variables etc
}

Затем вы можете отобразить вид нагрузки:

-(void)viewDidLoad {
  myView.hidden = NO;
}

И, наконец, вы можете переопределить метод webViewDidFinishLoad, чтобы скрыть его после загрузки

- (void)webViewDidFinishLoad:(UIWebView *)localwebView {
    myView.hidden = YES;
}
1 голос
/ 12 августа 2011

Добавьте изображение в View Controller в XIB или в Plist «Launch Image». Это покажет заставку с самого начала. При загрузке веб-вида в viewDidLoad скрыть веб-вид

webView.hidden = YES;

Загрузка веб-представления с содержимым HTML как обычно в viewDidLoad

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

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [self performSelector:@selector(updateWebView) withObject:nil afterDelay:1];
}

-(void) updateWebView {
    webView.hidden = NO;
    self.view = webViewElement;
    // or
    [self.view addSubview:webViewElement];
}

Я пытался, как указано выше, работает нормально, без белого экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...