2011-11-16 15 views
0

私はいつもlayoutSubViews:で行った変更が動画化されていると思っていましたか? この情報は間違っていますか? 私の場合、私はUITableViewCellから継承しています。 コントローラは、ユーザがセルを拡大したいと通知されるので、最初にUITableViewアニメーションブロックを使用して行の高さを上げます。新しい高さに滑らかにアニメーションされた高さが増加します。UITableViewCell layoutSubViews:なぜアニメーションが表示されないのですか?

私は目に見えるセルをループし、フラグを設定して電話をかけます。setNeedsLayout: セルは実際には新しい高さにコンテンツをレイアウトしますがアニメーションはありません。

答えて

0

いいえ、正しくありません。layoutSubviewsのデフォルトのアプローチはアニメーション化されません。アニメーションブロックを開始/コミットするか、ブロックアニメーション機能を使用するかはあなた次第です。

+0

Ah。はい。私は混乱しているように見えます。 UIViewのフレームの変更はどうですか?それは、アニメーションブロック内であれば、アニメーション化されるはずです。 – Krumelur

+0

はい、絶対に、アニメーションブロック内のみです。アニメートするレイヤプロパティ(基になるCore Animationのもの)の一部を変更することができますが、より高いレベルのUIKitプロパティをアニメーションブロックにラップする必要があります。 –

+0

私は困惑しています。私のサブビューの一部はアニメーション化され、他のものはモノトゥッチコードではありませんが、その点を理解してください。 layoutSubviewsのすべてのコード。 lblDmoName.Frame = new RectangleF(this.IconView.Frame.Right + 5、10、this.oContentSubView.Bounds.Width - 50、18); 下のコードはアニメーション表示されません。btnFavorite.Center = new PointF(this.oContentSubView.Bounds.Width - 70、this.oContentSubView.Bounds.Height/2);. また、UIImageViewの境界を縮小すると、アニメーションが大きくなりますが、成長していないことに気付きました。私は間違って何をしていますか? – Krumelur

関連する問題