2011-12-11 52 views
0

我有一個視圖,它包含一個連接到GestureRecognizer的UIWebView(帶有文本圖像等)。一旦webView被「點擊」,它就會翻轉並在此網頁視圖上顯示更新的文本,圖像等。我有這個識別器相關的操作如下:如何在動畫期間更新UIWebView?

- (IBAction)flipWebViewGestureRecognizer:(id)sender 
{ 
    // isFrontView is boolean to determine if card is front or back 
    if(self.isFrontOfView) 
    { 
     self.isFrontOfView = NO; 
     [UIView transitionWithView: self.imageView 
          duration: 1.0 
          options: UIViewAnimationOptionTransitionFlipFromTop 
         animations: ^{ [self loadBack]; } 
         completion: nil]; 
    } 
    else 
    { 
     self.isFrontOfView = YES; 
     [UIView transitionWithView: self.imageView 
          duration: 1.0 
          options: UIViewAnimationOptionTransitionFlipFromTop 
         animations: ^{ [self loadFront]; } 
         completion: nil]; 
    } 
} 

的方法loadFront和loadBack如下所示(HTML本身被縮短到最小):

- (void) loadFront 
{ 
    NSString *html = @"<p>Front Of Card</p>"; 
    [self.viewWebView loadHTMLString:html baseURL:nil]; 
} 

- (void) loadBack 
{ 
    NSString *html = @"<p>Front Of Card</p> <br /> <p>as well as back of card<p>"; 
    [self.viewWebView loadHTMLString:html baseURL:nil]; 
} 

從功能角度看,這偉大工程。卡片可以翻轉,網頁視圖用新的HTML文本更新。但是,實際網絡視圖的更新發生在卡已經完成翻轉之後(在動畫之後而不是在期間)。當視圖動畫完成翻轉時,我需要做些什麼才能使viewWebView已經加載更新後的html,而不是之後立即進行。

回答

1

我相信你的問題是UIWebView異步加載項目。如果是這樣,你需要開始你的加載,然後當UIWebView調用委託函數webViewDidFinishLoad:開始你的動畫。

但是,在調用委託方法之前,UIWebView可能會呈現到屏幕上,導致內容在動畫開始前閃現。

如果是這樣,那麼你可能不得不用兩個不同的UIWebView做這件事,並從一個切換到另一個。

+0

好吧,它看起來像我最終不得不加載兩個UIWebViews數據,然後在動畫過程中加載/卸載每個。謝謝你的提示! – 5StringRyan