在iphone os环境下,图像视图(UIImageView)中包含了一个动画图像animationImages属性值,它为图像视图引入一系列的图像,用连续改变image的方法来实现动画,等于一针一针的播放视频。
FlipsideViewController.h
//使用@protocol声明程序的协议为副页视图控制器代理
@protocol FlipsideViewControllerDelegate;
@interface FlipsideViewController : UIViewController {
//定义代理协议的身份
id <FlipsideViewControllerDelegate> delegate;
}
@property (nonatomic, assign) id <FlipsideViewControllerDelegate> delegate;
- (IBAction)done:(id)sender;
@end
//声明程序的副页视图控制器代理协议
@protocol FlipsideViewControllerDelegate
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller;
@end
FlipsideViewController.m
@synthesize delegate;
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
}
- (IBAction)done:(id)sender {
[self.delegate flipsideViewControllerDidFinish:self];
}
MainViewController.h
#import "FlipsideViewController.h"
//导入二维动画框架头文件
#import <QuartzCore/QuartzCore.h>
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
}
- (IBAction)showInfo:(id)sender;
@end
MainViewController.m- (void)viewDidLoad {
[super viewDidLoad];
//定义其关键针动画属性值
UIImageView* FireView = [[UIImageView alloc] initWithFrame:self.view.frame];
//定义关键帧动画图像的数组变量对象为烟花的图像文件
FireView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"fire01.png"],
[UIImage imageNamed:@"fire02.png"],
[UIImage imageNamed:@"fire03.png"],
[UIImage imageNamed:@"fire04.png"],
[UIImage imageNamed:@"fire05.png"],
nil];
//动画的动态时间
FireView.animationDuration = 1.75;
//无限循环
FireView.animationRepeatCount = 0;
//动画开始
[FireView startAnimating];
[self.view addSubview:FireView];
[FireView release];
}
- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {
//视图转换,翻页动态效果
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)showInfo:(id)sender {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
//定义控制器转换视图的形态类型
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}