好吧,所以我分類UIView和視圖有一堆子視圖。這些子視圖具有動畫效果。當我推動另一個視圖控制器頂部,或應用程序進入後臺,動畫停止。我subclassed UIView。它的一些子視圖是動畫的。什麼是重新啓動這些的正確方法?
什麼是在我的子視圖中重新啓動這些動畫的正確方法。我不希望View Controller告訴View重新啓動它們,因爲我覺得View應該知道什麼時候需要重新啓動而不需要被另一個對象明確告知。
但我不能在子類UIView上使用layoutSubviews,因爲正在發生的動畫正在添加新的UIImageView。當發生這種情況時,layoutSubviews在UIView子類上被調用。所以layoutSubviews被稱爲很多,我不能用它來重新啓動動畫。
想法?
更新 - 動畫代碼看起來像這樣...但我不認爲這真的很重要。
[UIView animateWithDuration:ANIMATION_DURATION delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
[subview setFrame:finalFrame];
} completion:^(BOOL finished) {
[subview removeFromSuperview];
}];
你能張貼一些代碼來說明你的問題嗎?具體來說,你是如何做動畫的('+ [UIView animate ...]調用,也許?),你的'-layoutSubviews'做了什麼? – Tim 2013-03-23 00:55:12
您可以通過view.superview!= nil檢查視圖是否可見,並開始動畫。 – user523234 2013-03-23 01:38:14
視圖總是有一個超視圖。我想要一個優雅的方式來觸發重啓。 – perezda 2013-03-23 23:04:44