IOS界面(图片)翻转
大家好,今天给大家分享界面(图片)翻转效果
我们先来看看翻转效果的实现
-(IBAction)switchViews:(id)sender
{
[UIView beginAnimations:@"View Flip" context:NULL];
[UIView setAnimationDuration:0.4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
if (!self.yellowViewController.view.superview) {
if(!self.yellowViewController){
self.yellowViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Yellow"];
}
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
[self.blueViewController.view removeFromSuperview];
[self.view insertSubview:self.yellowViewController.view atIndex:0];
}else{
if(!self.blueViewController){
self.blueViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Blue"];
}
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[self.yellowViewController.view removeFromSuperview];
[self.view insertSubview:self.blueViewController.view atIndex:0];
}
[UIView commitAnimations];
}
以上代码实现了动画块,指定动画持续时间。动画快的实现使用了UIview的类方法beginAnimations:context:声明。
例如以下代码:
[UIView beginAnimations:@"View Flip" context:NULL];
[UIView setAnimationDuration:0.4];
beginAnimations:context:接受的参数为两个,第一个代表动画标题,第二个参数指关联对象,那么在示例程序中我们只用NULL,因为没有必要指定对象。
现在我们来设置动画曲线
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
设置动画效果 使用UIview的类方法setAnimationCurve,设置选项为:UIViewAnimationCurveEaseInOut,它的作用使使翻转由慢到快再到慢,整体的效果显得很自然流畅,当然还有一些其他的设置选项。
那么为了有一种更好的翻转效果,我们为其中一个视图添加左侧翻入,另一个视图添加右侧翻入,这样从视觉上我们就有一种很Happy的感觉,让人感觉不停的前后翻转。
看一下实现方法
右侧翻入
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
左侧翻入
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
cache在动画开始时生成一个快照,动画执行过程的每一步使用这个快照,而不是重绘视图。所以应该对动画视图进行缓存,除非在视图外观在动画执行过程中需要改变
以上就是效果实现方案