如何为 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 它变成动画两个包含视图。
拖动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;
然后在viewDidLoad中,将yellowView设置为隐屏,并设置为隐藏
是
- (void)viewDidLoad {
super viewDidLoad];
self.yellowConstraint.constant = CGRectGetWidth(self.view.frame);
[self.view layoutIfNeeded];
self.yellowView.hidden = YES;
}
点击时,动画显示黄色视图
- (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;
}];
}
这就是我想要实现的目标,我创建了 3 张图片,它们比以往任何时候都更好地描述了我想做的事情。
这是我想要做的...
我想将 "App Title" 保持在原来的位置。我现在还有一个 UIImageView,它占据了深黑色所在的整个屏幕,我希望它像 "App Title".
一样保持固定然而,当用户单击 "Create Account" 时,在第一张图片上,我想为所有这些按钮在屏幕左侧和屏幕外设置动画,然后在右侧的 "Create Account" 按钮上设置动画。
我该怎么做。
请记住,我正在使用故事板和自动布局约束。我已经在图片 #1 中创建了视图。现在我需要弄清楚如何在 "Create Account" 视图上设置动画。我怎样才能做到这一点,同时继续使用 storyboards/IB 和自动布局,当然它适合所有手机?
举个例子告诉你怎么做
首先,我建议您使用 contain view 来包含您的文本字段,button.Then 它变成动画两个包含视图。
拖动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;
然后在viewDidLoad中,将yellowView设置为隐屏,并设置为隐藏 是
- (void)viewDidLoad { super viewDidLoad]; self.yellowConstraint.constant = CGRectGetWidth(self.view.frame); [self.view layoutIfNeeded]; self.yellowView.hidden = YES; }
点击时,动画显示黄色视图
- (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; }]; }