2011-08-17 122 views
1

直到現在,我使用begin/commit方法在視圖之間切換。通過這種方式,很容易將兩個或多個視圖「結合」在同一時間插入頂部。在我的情況下,它是一個content2.view,其上有border2.view。該動畫看起來像是一個視圖,其內容在一個框架中。具有多個視圖的塊轉換

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:speed]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; 

    [window addSubview:content2.view]; 
    [window addSubview:border2.view]; 

    [UIView commitAnimations]; 

    content1.view = nil; 

現在我想將動畫轉換爲塊。它也有效,但不是我無法弄清楚我如何「合併」兩種觀點。有沒有辦法?

[UIView transitionFromView:content1.view 
        toView:content2.view 
        duration:2.0 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       completion:NULL]; 

回答

0

您必須使用方法:

transitionWithView:duration:options:animations:completion: 

transitionFromView:toView是需要轉型,從一個視圖到另一個視圖的最一般的情況下,方便的方法。

在這種情況下,你的代碼應該是

[UIView transitionWithView:window 
        duration:2.0 
        options:UIViewAnimationOptionTransitionFlipFromRight 
       animations:^{ [window addSubview:content2.view]; 
           [window addSubview:border2.view]; } 
       completion:^(BOOL completed){ [content1.view removeFromSuperview]; 
               content1.view = nil; } 
+0

非常感謝您! – Bobby