2011-08-04 3 views
0

私はちょうど私がpseudoEditingフラグが設定したか否かに応じて、左/すべてのセルをシフトし、私のcellForRowAtIndexデリゲートメソッドの末尾に次のアニメーションを持っている:定数が宣言されているのはここ次のUIViewアニメーションが一方向のみで動作する理由は何ですか?

[UIView beginAnimations:@"cell shift" context:nil]; 
[UIView setAnimationDuration:kEventActionViewAnimationDuration]; 

cell.eventName.frame = (self.pseudoEditing) ? kPseudoEditingFirstIndentedRect : kFirstLabelRect; 
cell.eventLocationName.frame = (self.pseudoEditing) ? kPseudoEditingSecondIndentedRect : kSecondaryLabelRect; 
cell.eventStartDate.frame = (self.pseudoEditing) ? kPseudoEditingThirdIndentedRect : kThirdLabelRect; 
cell.eventStartEndTime.frame = (self.pseudoEditing) ? kPseudoEditingFourthIndentedRect : kFourthLabelRect; 
cell.imageView.frame = (self.pseudoEditing) ? kImageViewIndentedRect : kImageViewRect; 
cell.rsvpImageView.hidden = !self.pseudoEditing; 

[UIView commitAnimations]; 


return cell; 

です:

#define kImageViewRect       CGRectMake(10, 9.0, 60.0, 60.0) 
#define kFirstLabelRect       CGRectMake(80, 10.0, 220.0, 20.0) 
#define kSecondaryLabelRect      CGRectMake(80, 30.0, 220.0, 20.0) 
#define kThirdLabelRect       CGRectMake(80, 50.0, 220.0, 20.0) 
#define kFourthLabelRect      CGRectMake(180.0, 50.0, 110.0, 20.0) 

#define kPseudoEditingFirstIndentedRect   CGRectMake(115.0, 10.0, 195.0, 20.0) 
#define kPseudoEditingSecondIndentedRect  CGRectMake(115.0, 30.0, 195.0, 20.0) 
#define kPseudoEditingThirdIndentedRect   CGRectMake(115.0, 50.0, 195.0, 20.0) 
#define kPseudoEditingFourthIndentedRect  CGRectMake(200.0, 50.0, 110.0, 20.0) 

問題は左から右に、通常状態から左に右からバックないをシフトするときに一方向にのみ動作することです。

アイデア?

+0

アニメーションの設定に使用するコードを表示できますか? –

+1

おそらく、アニメーションをブロックする方が簡単ですし、アップルがその方法を承認しているはずです。 – msgambel

+0

@MSガンベル:アップルは両方の方法を「承認」しています。おそらくブロックの使用が望ましい方法でしょうか? – titaniumdecoy

答えて

0

私のFetchedResultsControllerは、アニメーションを開始した直後にテーブルをリロードしていますが、これをキャンセルしました。

関連する問題