ios - 我如何执行这些动画 View 转换?

标签 ios core-animation

我是 Core Animation 的新手,我需要知道如何制作 2 个动画:

  1. 我需要通过淡入黑色来切换 XIB(完全释放第一个 View Controller )
  2. 我需要模仿 UINavigationController 的 pushViewController 动画(切换 XIB 并释放第一个 View Controller )

如何实现这些动画 View 转换?

最佳答案

我已经完成了这两个动画,但可能不是您正在寻找的确切方式。

  1. 将 View 淡化为黑色,我采用了另一种方式,而是添加了一个新的 覆盖整个黑色动画窗口的 subview Alpha 从 0.0 到 1.0。效果不错。

    [UIView animateWithDuration:0.5 动画:^{ _easterEgg.alpha = 1.0; } completion:^(BOOL finished) { [self animateIndex:0]; }];

  2. 在 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/

相关文章:

ios - 使用 objective c 和 google-api-objectivec-client-for-rest 在 youtube 上上传视频

android - Corona SDK 应用程序大小太大

ios - 从 ECSlidingViewController 呈现模态视图 Controller

iphone - 如何在 UIImageView 中淡入/淡出任意数量的 UIImage

ios - 如何进行 Facebook 风格转换

ios - 如何从 CAKeyframeAnimation 获取当前动画步骤

objective-c - UIImageView 的 iPhone 动画任意角度?

ios - 应用程序是否会收到有关被忽略的推送通知的通知?

objective-c - 具有大量自动释放对象的线程如果是/否,是否必须在这种情况下使用自动释放池,为什么?

ios - 重新创建 Siri 按钮发光动画