好的,所以我将 UIView 子类化并且视图有一堆子视图。这些子视图是动画的。当我将另一个视图控制器推到顶部时,或者应用程序进入后台时,动画停止。
在我的子视图中重新启动这些动画的正确方法是什么。我不想让 View Controller 告诉 View 重新启动它们,因为我觉得 View 应该知道什么时候需要重新启动,而不会被另一个对象明确告知。
但是我不能在子类 UIView 上使用 layoutSubviews,因为正在发生的动画正在添加新的 UIImageViews。发生这种情况时,会在 UIView 子类上调用 layoutSubviews。所以 layoutSubviews 被调用了很多,我不能用它来重新启动动画。
想法?
更新 - 动画代码看起来像这样......但我认为这并不重要。
[UIView animateWithDuration:ANIMATION_DURATION delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
[subview setFrame:finalFrame];
} completion:^(BOOL finished) {
[subview removeFromSuperview];
}];