今天例子练习的目的是:
1。 使用Button开关图片及动画演示
2。 使用slide来调整动画演示的速度
最终效果如下:
具体练习步骤如下:
1。 创建view_base_application, 名称为ImageHop;
2. 添加图片资源,方法是选择Resouce文件夹,右键选择add/Existing files, 选择图片后确定,勾选复制;
3. 打开ImageHopViewController.xib
添加各个UI控件,包括ImageView,选择图片作为第一帧显示
然后添加UISlide, UIButton,UILabel
4。 链接UI控件和file‘s Owner
5。 打开ImageHopViewController.h
声明各个UI控件,并且设置@property
定义两个函数
// ImageHopViewController.h
// ImageHop
//
// Created by 旭 陈 on 11-12-2.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ImageHopViewController : UIViewController {
IBOutlet UILabel *speedLabel;
IBOutlet UIImageView *imgView;
IBOutlet UISlider *slide;
IBOutlet UIButton *button;
}
@property(retain,nonatomic)IBOutlet UILabel *speedLabel;
@property(retain,nonatomic)IBOutlet UIImageView *imgView;
@property(retain,nonatomic)UISlider *slide;
@property(retain,nonatomic)UIButton *button;
-(IBAction)toggleAnimation:(id)sender;
-(IBAction)setSpeed:(id)sender;
@end
6。 实现具体方法
6。1 viewDidLoad, NSArray *imageArr 初始化
6。2 实现-(IBAction)toogleAnimation 打开和关闭动画
setSpeed
6。3 显示 -(IBAction)setSpeed:(id)sender主要的含义就是imageView.animationDuration=newSpeed;
具体代码如下:
//
// ImageHopViewController.m
// ImageHop
//
// Created by 旭 陈 on 11-12-2.
// Copyright 2011 __MyCompanyName__. All rights reserved.
//
#import "ImageHopViewController.h"
@implementation ImageHopViewController
@synthesize speedLabel;
@synthesize imgView;
@synthesize slide;
@synthesize button;
/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
}
return self;
}
*/
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
NSArray *imgArr;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
imgArr =[NSArray arrayWithObjects:[UIImage imageNamed:@"frame-1.png"],
[UIImage imageNamed:@"frame-2.png"],
[UIImage imageNamed:@"frame-3.png"],
[UIImage imageNamed:@"frame-4.png"],
[UIImage imageNamed:@"frame-5.png"],
[UIImage imageNamed:@"frame-6.png"],
[UIImage imageNamed:@"frame-7.png"],
[UIImage imageNamed:@"frame-8.png"],
[UIImage imageNamed:@"frame-9.png"],
[UIImage imageNamed:@"frame-10.png"],nil];
imgView.animationImages = imgArr;
imgView.animationDuration=1;
[super viewDidLoad];
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[imgArr release];
[slide release];
[speedLabel release];
[super dealloc];
}
-(IBAction)toggleAnimation:(id)sender{
if (imgView.isAnimating) {
[imgView stopAnimating];
[button setTitle:@"sit" forState:UIControlStateNormal];
}else {
[imgView startAnimating];
[button setTitle:@"run" forState:UIControlStateNormal];
}
}
-(IBAction)setSpeed:(id)sender{
imgView.animationDuration = slide.value;
speedLabel.text = [[NSString alloc]initWithFormat:@"%1.2f hps",slide.value];
}
@end
测试通过,明天继续。