2011-11-16 43 views
0

我一直認爲無論我在layoutSubViews:中執行的任何更改都完成了動畫嗎? 這是錯誤的信息? 在我的情況下,我從UITableViewCell繼承。 控制器得知用戶想要放大單元格,所以我首先使用UITableView動畫塊來增加行高。高度平穩地增加到新的高度。UITableViewCell layoutSubViews:爲什麼我不能獲取動畫?

然後我環路我的可見單元格,設置一個標誌,並呼籲setNeedsLayout: 細胞的確佈局和內容adust到新的高度,但沒有動畫。

回答

0

不,這是不正確的,layoutSubviews的默認方法不會執行動畫,它取決於您開始/提交動畫塊或使用塊動畫功能。

+0

啊。好的。看起來我感到困惑。那麼如何改變UIView的框架?如果在一個動畫塊中,這應該是動畫,對嗎? – Krumelur

+0

絕對是,只在動畫塊內。您可以更改某些圖層屬性(底層Core Animation的東西),這些屬性將動畫,但更高級別的UIKit屬性需要包含在動畫塊中。 –

+0

我很困惑。我的一些子視圖animate,其他的不是(Monotouch代碼,但你應該明白)。來自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

相關問題