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)
問題は左から右に、通常状態から左に右からバックないをシフトするときに一方向にのみ動作することです。
アイデア?
アニメーションの設定に使用するコードを表示できますか? –
おそらく、アニメーションをブロックする方が簡単ですし、アップルがその方法を承認しているはずです。 – msgambel
@MSガンベル:アップルは両方の方法を「承認」しています。おそらくブロックの使用が望ましい方法でしょうか? – titaniumdecoy