ios - UIViewController 应该控制 UIView 的动画吗?

标签 ios objective-c model-view-controller animation uiview

我一直在督促自己学习更多 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/

相关文章:

关于 TableView 和构建自定义类模型的 iPhone MVC 问题

ios - 单击 UITextField 时如何显示联系人?

ios - apple-app-site-association 从 azure 请求返回为 application/JSON

ios - 什么时候是将 CALayers/CAGradientLayers 添加到 iOS 8.3 的 UITableViewCells 或 UICollectionViewCells 的最佳方式?

java - 从 Service 调用 DAO 方法时出现问题

java - 在 Swing GUI 中避免循环引用

ios - 影子滞后于用户界面

iphone - UIView 旋转不能发生两次

ios - 如何频繁更新observeValueForKeyPath的数据?

ios - 如何更新 UISegmentedControl