我一直在督促自己学习更多 MVCS 风格的编程,并试图更好地组织我的代码。我的主要问题是,我有一个 UIViewController,它会在事件发生时调出一个 View 。创建 View 和销毁 View 时,我想在 View 出现和消失时运行一些动画。我可以在我拥有的 UIView 类和 UIViewController 中执行此操作。一旦建立了这些动画,就不需要更改它们。我应该在 UIViewController 或 UIView 中执行此操作以保持 MVC 兼容吗?
代码目前在我的 UIView 中:
- (IBAction)removeView
{
NSLog(@"Remove");
if (self.completionBlock != nil) {
[UIView animateWithDuration:1.0f delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{
self.transform = CGAffineTransformMakeTranslation(self.frame.origin.x, self.frame.origin.y - self.superview.frame.size.height);
self.alpha = 0; // also fade to transparent
}completion:^(BOOL finished)
{
if (finished) {
[self removeFromSuperview];
}
}];
self.completionBlock(YES);
}
}
最佳答案
根据您的描述,您可以在任何一个地方合法地执行它们,因为动画不依赖于您的应用程序的模型。但是,如果动画依赖于模型中的数据,那么 Controller 应该执行动画,因为 Controller 看到模型数据(但 View 看不到)。
关于ios - UIViewController 应该控制 UIView 的动画吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982922/