我是Core Animation的新手,我需要知道如何做2个动画:
如何实现这些动画视图过渡?
答案 0 :(得分:1)
我已经完成了这两个动画,但可能没有你想要的确切方式。
将视图淡化为黑色,我采用了另一种方式,而是添加了一个新的 覆盖整个黑色和动画窗口的子视图 Alpha从0.0到1.0。取得了很好的效果。
[UIView animateWithDuration:0.5 动画:^ {_easterEgg.alpha = 1.0; } 完成:^(BOOL完成){[self animateIndex:0]; }];
在UINavigationController中滑动视图。我没有完全像UINavigationController这样做,因为它做了多个动画,但我确实有一个新的视图滑动屏幕上的前一个视图。此代码将新视图的帧设置在当前视图右侧的屏幕上,构建一个离屏幕左侧的帧位置,并抓取当前可见帧。最后,它只是将新视图从屏幕右侧动画显示到可见帧,以及从可见帧到左侧的旧视图。然后删除旧视图。
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);
[view setFrame:offRight]; UIView * currentView = [[_contentView subviews] lastObject]; [_contentView addSubview:view];
[UIView animateWithDuration:0.5 动画:^ { [currentView setFrame:offLeft]; [view setFrame:visibleFrame]; } 完成:^(BOOL完成){ [currentView removeFromSuperview]; }];