2010-11-23 14 views
6

編集ボタンを押したときにUItableviewcellでテキストラベルをアニメートしようとしています。 私はそれをフェードアウトしてフェードインしようとしています。 フェードインは働いていますが、「編集」を押すと、テキストラベルが消え、「完了」を押すと完全にフェードインします。willTransitionToStateを使用してuitableviewcellでtextlabelをアニメ化

誰も私にそれが動作していない理由を教えてもらえますか?私はwillTransitionToStateが進むべき道だったことを確認するために考えて読んでいたすべてのものから、事前

- (void)willTransitionToState:(UITableViewCellStateMask)state { 
[super willTransitionToState:state]; 

if ((state & UITableViewCellStateEditingMask) || (state & UITableViewCellStateShowingDeleteConfirmationMask)) { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.3]; 
    label.alpha = 0.0; 
    [UIView commitAnimations]; 
} 
} 

- (void)didTransitionToState:(UITableViewCellStateMask)state { 
[super didTransitionToState:state]; 

if (!(state & UITableViewCellStateEditingMask) && !(state & UITableViewCellStateShowingDeleteConfirmationMask)) { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:0.5]; 
    label.alpha = 1.0; 
    [UIView commitAnimations]; 
} 
} 

答えて

6

感謝。 didTransitionToStateを使用すると完全に動作しますが、通常の編集トランジションが終了した後にトランジションが開始されます。結局のところ

は、私はあなたがsetEditing

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 
{ 
    [super setEditing:editing animated:animate]; 

    if(editing) { 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.3]; 
     label.alpha = 0.0; 
     [UIView commitAnimations]; 
    } else { 
     [UIView beginAnimations:nil context:nil]; 
     [UIView setAnimationDuration:0.3]; 
     label.alpha = 1.0; 
     [UIView commitAnimations]; 
    } 
} 
+1

+1もMonoTouchで動作します。 – tomfanning

12

私はwillTransitionToStateを入力するときにアニメーションが無効になったことに気づいに使用したいと思います。以下はそれを修正しました。

- (void)willTransitionToState:(UITableViewCellStateMask)state 
{ 
    [super willTransitionToState:state]; 

    //Should be enabled by default...but apparently not 
    [UIView setAnimationsEnabled:YES]; 
... 
} 
+3

アニメーションを無効にする理由がわからないので、アニメーションブロックの前に+ [UIView areAnimationsEnabled]によって返された値を保存し、メソッドの最後に値を復元することができます。 – Alej

関連する問題