2010-07-23 21 views
5

Tüm amaçlar ve amaçlar için HTML/CSS ve Javascript olan yerel bir uygulama oluşturmaya çalışıyorum. Her şey iyi çalışıyor, ancak UIWebView yüklendiğinde DOM doldurulurken bir gecikme olduğu zaman, görüntüler alınabiliyor vb.UIWebView üzerinde arka plan resmi görüntüleme

UIWebView'de arka plan görüntüsünün veya arkasındaki bir şeyin görüntülenmesi için herhangi bir yer var mı? İdeal olarak bu, açılış ekranı ile aynı olacak, böylelikle eğik çizgiden uygulamaya geçiş deneyimini etkilemez.

Teşekkür

Robbie

cevap

3

UIWebView'ı saydam olarak ayarlamak ve arkasındaki görüntüyü göstermek istediğinize inanmıyorum. Bunun yerine, UIWebView içeriğini yükleyene kadar orada görüntülenen bir görüntü (belki de belki de bir Gösterici ve yarı saydam bir görüntü ile "karartmak" gibi bir görüntü elde etmeniz gerekir.

Bunun için öncelikle sınıf UIWebViewDelegate protokolü abone olmalıdır:

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

Sonra yükün bir görünüm gösterebilir:

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

Ve son olarak, webViewDidFinishLoad geçersiz kılabilir Yöntem Bir kez indirildi Yüklemeyi kaldır

- (void)webViewDidFinishLoad:(UIWebView *)localwebView { 
    myView.hidden = YES; 
} 
+1

Uygun olayları, HTML ve CSS'yi yükleyip oluşturduktan sonra UIWebView gibi bir şey için kovulsun mu? JQuery'den $ (document) .ready() eşdeğeri gibi bir şey var mı? Kesinlikle bunu deneyeceğim, teşekkürler. – Robbie

+0

Evet, jQuery eşdeğeri iyi bir karşılaştırma. – h4xxr

30

benim UIWebViews üzerinde saydam bir arka plan elde etmek benim kodda aşağıdakileri yapmak için yaşadım - Ben genellikle UIViewController

self.webView.backgroundColor = [UIColor clearColor]; 
self.webView.opaque = NO; 
arasında viewDidLoad yöntemdeki bunun

Ayrıca, bu değişiklikleri UIWebViews özelliklerinde Interface Builder'da da yapabileceğinizi düşünüyorum.

--- edit ---

Ve arka plan görüntüsü için sadece bunu şeffaf bir arka plan verdiğim UIWebView arkasında bir UIImageView koyabilirsiniz

.

+0

iOS4 tüm incelemeler clearColor için .backgroundColor ayarlama ve daha sonra bunun arkasında bir görüntü koyarak gereğini ortadan kaldırır .backgroundView yeni özellik verir. Ancak arka plan görüntüsünün eklenmesi (web sayfasının yavaş yavaş * yukarısına * yüklenmesinin) burada doğru bir yaklaşım olduğunu kabul etmiyorum. – h4xxr

+0

Bu yüzden kesinlikle işe yarıyor, farklı manzaralardan yükleme ile ilgili bazı sorunlar vardı, ancak yine de öğrenmem gereken bir şey var. – Robbie

+0

Mükemmel çözüm! – iwill

1

Resim Xib in View denetleyicisine ekleyin veya "Görüntü Başlat" Listesinin Plist'i. Bu, Başlangıç ​​Ekranından Sıçrama Ekranını gösterecektir. viewDidLoad webView webview

webView.hidden = YES; 

yükleyin webView yüklendikten sonra

viewDidLoad

her zamanki gibi HTML içeriğiyle webView gizlemek yüklenirken, bazıları sonra görünümü güncellemeyi gerçekleştirin. Bu, temsilci işlevi UI güncelleştirmelerini tamamlamak ve devam etmek için biraz zaman tanıyacağını düşünüyorum.
- (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]; 
} 

Ben yukarıdaki gibi çalıştı hiçbir beyaz Ekranlı iyi çalışıyor.

8
webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"senthil.jpg"]]; 
+0

Bunun herhangi bir oyu alamadığı bir sebep var mı? Benim için harika çalıştı. Tek detay, "opak" onay kutusunun işaretini kaldırmanız ve bir çekicilik gibi çalışmanızdır. –