如何为 UIViewController "off" 屏幕的一些子视图和屏幕的其他视图 "on" 设置动画?

How can I animate some subviews of a UIViewController "off" the screen, and other views "on" the screen?

这就是我想要实现的目标,我创建了 3 张图片,它们比以往任何时候都更好地描述了我想做的事情。

这是我想要做的...

我想将 "App Title" 保持在原来的位置。我现在还有一个 UIImageView,它占据了深黑色所在的整个屏幕,我希望它像 "App Title".

一样保持固定

然而,当用户单击 "Create Account" 时,在第一张图片上,我想为所有这些按钮在屏幕左侧和屏幕外设置动画,然后在右侧的 "Create Account" 按钮上设置动画。

我该怎么做。

请记住,我正在使用故事板和自动布局约束。我已经在图片 #1 中创建了视图。现在我需要弄清楚如何在 "Create Account" 视图上设置动画。我怎样才能做到这一点,同时继续使用 storyboards/IB 和自动布局,当然它适合所有手机?

举个例子告诉你怎么做

首先,我建议您使用 contain view 来包含您的文本字段,button.Then 它变成动画两个包含视图。

  1. 拖动x位置的constraints作为outlet,在这个demo中是center x.Also拖动两个contain view

    @property (weak, nonatomic) IBOutlet UIView *yellowView;
    @property (weak, nonatomic) IBOutlet UIView *greenView;
    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *greenConstraint;
    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *yellowConstraint;
    

  1. 然后在viewDidLoad中,将yellowView设置为隐屏,并设置为隐藏 是

    - (void)viewDidLoad {
         super viewDidLoad];
         self.yellowConstraint.constant = CGRectGetWidth(self.view.frame);
        [self.view layoutIfNeeded];
         self.yellowView.hidden = YES;
      }
    
  2. 点击时,动画显示黄色视图

    - (IBAction)start:(id)sender {
        self.yellowConstraint.constant = 0;
        self.yellowView.hidden = NO;
        self.greenConstraint.constant = -1 * CGRectGetWidth(self.view.frame);
       [UIView animateWithDuration:0.5 animations:^{
          [self.view layoutIfNeeded];
       } completion:^(BOOL finished) {
          self.greenView.hidden = YES;
    }];
      }