165在屏幕中实现过渡动画效果

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>
2
3 @interface ViewController : UIViewController
4 @end

ViewController.m

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4 - (void)layoutUI;
 5 - (UIImageView *)nextView;
 6 - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
 7 @end
 8
 9 @implementation ViewController
10 #define kViewTag 1
11
12 - (void)viewDidLoad {
13     [super viewDidLoad];
14
15     [self layoutUI];
16 }
17
18 - (void)didReceiveMemoryWarning {
19     [super didReceiveMemoryWarning];
20     // Dispose of any resources that can be recreated.
21 }
22
23 - (void)layoutUI {
24     self.view.backgroundColor = [UIColor blackColor];
25
26     [self.view addSubview:[self nextView]];
27 }
28
29 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
30     static UIViewAnimationTransition transition = UIViewAnimationTransitionNone;
31     UIImageView *imgVCurrent = [self nextView];
32
33     [UIView beginAnimations:nil context:NULL];
34     [UIView setAnimationDuration:2.0];
35     [UIView setAnimationDelegate:self];
36     [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
37     [UIView setAnimationTransition:transition forView:self.view cache:YES];
38     [[self.view viewWithTag:kViewTag] removeFromSuperview];
39     [self.view addSubview:imgVCurrent];
40     [UIView commitAnimations];
41
42     //将动画设置为无效状态
43     [UIView setAnimationsEnabled:NO];
44     //切换过渡效果
45     switch (transition) {
46         case UIViewAnimationTransitionNone: //无过渡效果;作为默认值
47         case UIViewAnimationTransitionFlipFromLeft: //从左翻转效果
48         case UIViewAnimationTransitionFlipFromRight: //从右翻转效果
49         case UIViewAnimationTransitionCurlUp: { //从下往上翻页效果
50             transition++;
51             break;
52         }
53         case UIViewAnimationTransitionCurlDown: { //从上往下翻页效果
54             transition = UIViewAnimationTransitionNone;
55             break;
56         }
57     }
58 }
59
60 - (UIImageView *)nextView {
61     static BOOL isFirstView = YES;
62     UIImage *img = [UIImage imageNamed: (isFirstView ? @"Animation1" : @"Animation2")];
63     isFirstView = !isFirstView;
64
65     UIImageView *imgV = [[UIImageView alloc] initWithImage:img];
66     imgV.tag = kViewTag;
67     CGFloat widthOfImg = img.size.width * 3; //以原图片宽度的3倍放大,作为图片视图的图片宽度
68     CGFloat heightOfImg = img.size.height * 3; //以原图片高度的3倍放大,作为图片视图的图片高度
69     imgV.frame = CGRectMake(CGRectGetMidX(self.view.frame) - widthOfImg/2,
70                             CGRectGetMidY(self.view.frame) - heightOfImg/2 + 10,
71                             widthOfImg,
72                             heightOfImg);
73     return imgV;
74 }
75
76 - (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
77     //将动画设置为有效状态
78     [UIView setAnimationsEnabled:YES];
79 }
80
81 @end
时间: 2024-10-15 03:35:30

165在屏幕中实现过渡动画效果的相关文章

jQuery和CSS3全屏带过渡动画效果的模态窗口插件

animatedModal.js是一款效果非常炫酷的jQuery和CSS3全屏带过渡动画的模态窗口特效插件.该模态窗口插件和animate.css完美结合,你可以使用animate.css中的任何动画效果来制作该模态窗口的过渡动画效果. 在线演示:http://www.htmleaf.com/Demo/201503031453.html 下载地址:http://www.htmleaf.com/jQuery/Lightbox-Dialog/201503031452.html

182在屏幕中实现网格化视图效果

实现同样效果,更简单的方式如之前写的这篇随笔:使用 UICollectionView 实现网格化视图效果 效果如下: iPhone 5s iPhone 6 iPhone 6 Plus ViewController.h 1 #import <UIKit/UIKit.h> 2 #import "KMGridViewDelegate.h" 3 #import "KMGridView.h" 4 5 @interface ViewController : UIVi

android中设置Animation 动画效果

在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation 画面转换动画,接下来eoe进行讲解. tweened animation 渐变动画有以下两种类型: 1.alpha   渐变透明度动画效果 2.scale   渐变尺寸伸缩动画效果 frame by frame animation 画面转换动画有以下两种类型: 1.translate  画面转换位置

iOS Controller中视图切换动画效果

最近在一个小项目中遇到一个动画切换的效果,一时被难到了,后来又去看了下苹果公司提供的动画类,找到了几个动画的执行方法,这些默认的动画方法足够满足一般需求的动画效果了,接下来贴代码 首先我们在Controller中创建对应的按钮按钮 CGFloat mainHeight = [UIScreen mainScreen].bounds.size.height; NSArray titleArr = @[@"添加",@"翻页",@"移入",@"

iOS开发中CATransition过渡动画的类型

移动开发过程中, 动画是必不可少的,有了动画,仿佛我们的程序有了生命一样.动画可以让我们的程序界面变化更流畅, 而不是很突兀的感觉.今天,就说一下CATransition过渡动画. 我们先看一下过渡动画的代码实现: <span style="white-space:pre"> </span>// 创建 CATransition *transition = [CATransition animation]; transition.duration = 2; //

css3中outline切换动画效果

今天刚看了篇文章<纯CSS实现的outline切换transition动画效果> 里面的效果研究了一下,下图为实现时的效果 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> .focus-tra

JS函数库:页面滚动过程中元素产生动画效果 WOW.js

官网 WOW.js依赖animate.css, 所以它支持animate.css多达60多种动画效果. 浏览器兼容:IE9以及以前的版本不适用 使用方法: 1.引入文件 <link rel="stylesheet" href="css/animate.min.css" /> <script type="text/javascript" src="js/wow.min.js"></script>

64、具有过渡动画效果的布局Layout( 2 )

[ CoordinatorLayout-与手势完美结合的滑动视图 ] [ AppBarLayout-可以随手势滑动的AppBar ] 1 <android.support.design.widget.CoordinatorLayout 2 xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto"

63、具有过渡动画效果的布局Layout

下面,下来看一个Demo的效果,代码如下: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/root_layout" android:layout_width="match_parent"