2015-07-10 37 views
4

我一直在搜尋網絡,尋找如何將動畫合併到我的UIWebView控件中的示例,但是會空白。使用動畫進行WebView頁面更改

我對動畫沒有挑剔(一旦我明白如何將它附加到動作上,我就可以把它弄糊塗),我只想要不僅僅是從一個網頁到另一個網頁的鮮明過渡,捲曲的頁面,從左側(舊頁面)到右側(新頁面)的動畫,無論將做什麼。

有人可以發表一個例子或指引我解釋我如何做這件事的頁面?我閱讀了關於CATransition的文檔,但我仍然沒有看到如何將它合併到我的UIWebView導航中。

+0

當您點擊網頁中的鏈接時,您是否想在網頁之間導航時控制動畫? – Subbu

+0

是的,差不多 – C4W

回答

2

後,我身邊的一些演奏得到了我想要的效果,我可能需要調整它一下,但這裏是我想出了:

執行的loadRequest之前(我已經改變了我的代碼現在這樣我捕捉通過shouldStartLoadWithRequest所有頁面更改,然後手動設置新頁面使用的WebView的loadRequest)我去捲曲動畫例程我編寫了一個名爲animatePage:

- (void) animatePage 
{ 
    CATransition *animation = [CATransition animation]; 
    [animation setDelegate:self]; 
    [animation setDuration:1.0f]; 
    animation.startProgress = 0.5; 
    animation.endProgress = 1; 
    [animation setTimingFunction:UIViewAnimationCurveEaseInOut]; 
    [animation setType:@"pageCurl"]; 

    //[animation setType:kcat]; 
    [animation setSubtype:kCATransitionMoveIn]; 

    [animation setRemovedOnCompletion:NO]; 
    [animation setFillMode: @"extended"]; 
    [animation setRemovedOnCompletion: NO]; 
    [[myWebView layer] addAnimation:animation forKey:@"WebPageCurl"]; 
} 

所以動畫有嫋嫋頁動畫的頁面變化我基本上是這樣做的:

[self animatePage]; 
[myWebView loadRequest:myRequest]; 

我可以在loadRequest之前或之後調用animatePage例程,這並不重要。

我知道這可能不是完成工作的「正確」方式,但似乎完成了工作。就像我說的,我需要在這裏和那裏撥打它,但我對目前爲止的結果感到滿意。