我是 Core Animation 的新手,我需要知道如何制作 2 个动画:
- 我需要通过淡入黑色来切换 XIB(完全释放第一个 View Controller )
- 我需要模仿 UINavigationController 的 pushViewController 动画(切换 XIB 并释放第一个 View Controller )
如何实现这些动画 View 转换?
最佳答案
我已经完成了这两个动画,但可能不是您正在寻找的确切方式。
将 View 淡化为黑色,我采用了另一种方式,而是添加了一个新的 覆盖整个黑色动画窗口的 subview Alpha 从 0.0 到 1.0。效果不错。
[UIView animateWithDuration:0.5 动画:^{ _easterEgg.alpha = 1.0; } completion:^(BOOL finished) { [self animateIndex:0]; }];
在 UINavigationController 之类的 View 中滑动。我没有完全像 UINavigationController 那样做,因为它有多个动画,但我确实有一个新 View 将以前的 View 滑出屏幕。此代码将屏幕外新 View 的框架设置在当前 View 的右侧,在屏幕外的左侧构建一个框架位置,并抓取当前可见框架。最后,它只是将新 View 从屏幕外的右侧动画化到可见帧中,并将旧 View 从可见帧中动画化到左侧。然后删除旧 View 。
CGRect offRight = CGRectMake(_contentView.frame.size.width, 0, _contentView.frame.size.width, _contentView.frame.size.height);
CGRect offLeft = CGRectMake(-_contentView.frame.size.width, 0, _contentView.frame.size.width, _contentView.frame.size.height);
CGRect visibleFrame = CGRectMake(0, 0, _contentView.frame.size.width, _contentView.frame.size.height);
[查看setFrame:offRight]; UIView *currentView = [[_contentView subviews] lastObject]; [_contentView addSubview:view];
[UIView animateWithDuration:0.5 动画:^{ [currentView setFrame:offLeft]; [ View 设置框架:可见框架]; } 完成:^( bool 完成){ [currentView removeFromSuperview]; }];
关于ios - 我如何执行这些动画 View 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536375/