2010-08-05 27 views
1

我有一個工作視圖動畫,在containerview.subviews發生更改時捲起容器視圖。 (動畫前一個UITableView將被顯示,之後它是一個自定義視圖,名稱keypadView)將動畫移動到iOS4塊時的問題

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:.75]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:containerView 
         cache:YES]; 
[secondView removeFromSuperview]; 
[containerView addSubview:keypadView]; 
[UIView commitAnimations]; 

現在我想改寫爲iOS4的基於塊的API這個代碼,因爲我想用結束塊。我寫到:

[UIView transitionWithView:containerView 
        duration:.75 
        options:UIViewAnimationTransitionCurlUp 
       animations:^{ 
        NSLog(@"Hey Ho"); 
        [secondView removeFromSuperview]; 
        [containerView addSubview:keypadView]; 
       } 
       completion:NULL]; 

視圖切換 - 但不是動畫。

我的代碼有什麼問題?

編輯

completion: ^(BOOL completed){ 
    NSLog(@"completed %d", completed); 
} 

沒有幫助,因爲NULL是一個公認的價值,根據你離開[UIView beginAnimations:nil context:nil];新塊以上的文檔

+0

我編輯了我的答案,以顯示您應該使用的正確的塊動畫選項。 – 2010-08-19 18:37:12

回答

2

做: 選擇:UIViewAnimationOptionTransitionCurlUp 代替: 選擇:UIViewAnimationTransitionCurlUp

這就是爲什麼你的代碼工作現在:)。

+0

是的,這是問題所在。幾周前我發現它,但我忘了寫一個答案。 – vikingosegundo 2010-10-15 08:45:35

+0

如果我可以多次投票,我會 - 很容易錯過,只是丟了大約1/2小時:) – 2011-08-23 17:32:48

1

完成塊總是NULL?嘗試把NSLog聲明放在那裏或其他地方。我不知道是否NULL塊會搞砸。

+0

請看我的編輯 – vikingosegundo 2010-08-05 15:55:37

2

在UIView類參考樣本可以是錯誤的 - 也許有一個與添加和刪除在animations塊對象視圖中的錯誤,但唯一的辦法我已經能夠得到它的工作如下: :

[secondView removeFromSuperview]; 
[containerView addSubview:keypadView]; 
[UIView transitionWithView:containerView 
        duration:.75 
        options:UIViewAnimationOptionTransitionCurlUp 
       animations:^{} 
       completion:^(BOOL finished) { 
        NSLog(@"finished %d", finished); 
       }]; 
+0

謝謝你的答案,但這段代碼也不適用於我。 – vikingosegundo 2010-08-18 16:09:02

+0

Woops!塊動畫選項應該使用'UIViewAnimationOption'而不是'UIViewAnimationTransition'。所以正確的動畫選項是'UIViewAnimationOptionTransitionCurlUp'。編輯我的答案來解決這個問題。對不起:) – 2010-08-18 17:02:57

+0

事實上,進一步的測試證明,視圖操作(removeFromSuperview&addSubview)在動畫塊對象內工作得很好。似乎有一個PBKAC,而不是Apple的文檔。 – 2010-08-18 17:09:50