2009-08-04 7 views
4

this postとよく似たことをしようとしています。 Atebits Fast Scrolling in Tweetieの投稿からは、私はそれのすべてのdrawRect:の描画を行うUITableViewサブクラスを持っているそれのcontentViewのメソッド。これは完全に動作し、超高速です。私が今しようとしているのは、編集から編集に移行するアニメーションです。UITableViewCell編集/並べ替えモードに入るときのカスタム描画とアニメーション

私が達成しようとしていることの例は、セル内にテキストが正しく整列している状況です。編集モードに入ると、contentViewは右に移動して編集コントロールのためのスペースを確保しますが、テキストは右側のオフスクリーンにも移動します。単にlayoutSubviewsで[contentView setNeedsDisplay]を呼び出すと、右揃えのテキストを再調整できますが、新しい位置にジャンプします。

アニメーション化するにはどうすればよいですか?

+0

どのようにあなたがあなたの細胞を描いていますか?あなたがLorenのアドバイスに従っているなら、あなたはそれらを直接サブビューの束と描くべきです。あなたはサブビュー( 'UILabel'など)を持っていますか、' [myString drawInRect:someRect] 'のように直接描画していますか? – jbrennan

答えて

1

あなたlayoutSubviewsは次のようになります。

-(void)layoutSubviews { 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 

    /* Change offsets here. */ 

    [UIView commitAnimations]; 
} 

をまたapplicationDidFinishLaunchingに追加する必要があります。

[UIView setAnimationsEnabled:YES]; 
+0

layoutSubviewsは暗黙的にアニメーションを行いますので、beginAnimations/commitAnimationsは必要ありません。これはdrawRectで独自のコンテンツを描画しているときには機能しません。変更するオフセットがないからです。アニメーションは、UIViewサブクラスを使用する場合にのみ機能します。 – prime31