//
// ?ViewController.m
// ?TOM
//
// ?Created by lanou on 16/7/12.
// ?Copyright?2016年lanou. All rights reserved.
//
#import"ViewController.h"
@interfaceViewController()
@property(weak,nonatomic)IBOutletUIImageView *TomCatview;(經(jīng)過(guò)下圖操作直接生成代碼)
@end
@implementationViewController
- (void)viewDidLoad {
[superviewDidLoad];
// ???UIImageView *imageView = [UIImageView new];
//序列幀動(dòng)畫(huà)要播放的圖片數(shù)組
// ??????imageView.animationImages
//動(dòng)畫(huà)時(shí)長(zhǎng)
// ???imageView.animationDuration
//動(dòng)畫(huà)重復(fù)次數(shù)
// ???imageView.animationRepeatCount
//開(kāi)始動(dòng)畫(huà)
// ???[imageView startAnimating];
//結(jié)束動(dòng)畫(huà)
// ???[imageView stopAnimating];
//是否正在執(zhí)行動(dòng)畫(huà)
// ???[imageView isAnimating]'
}
//制作圖片中所選按鈕符喝,以及設(shè)置圖片背景豁延,如下圖注釋
- (IBAction)eatBirdaction:(UIButton*)sender {
NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images贞远,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <40; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面鹦马、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"eat_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=40*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
下面是自己寫(xiě)的代碼(不過(guò)和上面的 第一個(gè)按鈕很類似 ,有一部分都是復(fù)制粘貼的只需要改動(dòng)三個(gè)變量辕翰,分別是圖片總數(shù)量藐守,圖片數(shù)組名和動(dòng)畫(huà)時(shí)長(zhǎng))
- (IBAction)drinkaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images挪丢,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <81; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面卢厂、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"drink_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=81*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)knockoutaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images乾蓬,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <81; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面慎恒、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"knockout_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=81*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)Tompieaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images任内,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <24; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面融柬、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"pie_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=24*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)qiaoluoaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images死嗦,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <13; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面粒氧、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"Cymbal_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=13*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)Tomfartaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images越除,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <28; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面靠欢、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"fart_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=28*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)scratchaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images廊敌,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <56; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面门怪、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"scratch_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=56*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
(下面是無(wú)背景無(wú)文字的按鈕就是在Tom貓身上的按下的按鈕)(先不要看旁邊的代碼B獬骸R瘃劝萤!請(qǐng)勿混淆)
- (IBAction)angryaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <26; i++) {
//根據(jù)I來(lái)加載圖片以故,添加到可變數(shù)組IMAGES里面坦弟、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"angry_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=26*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)sromachaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images护锤,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <34; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面酿傍、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"stomach_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=34*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)rightatcion:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images烙懦,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <30; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面赤炒、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"footright_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=30*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (IBAction)leftaction:(UIButton*)sender {NSMutableArray*images = [NSMutableArrayarray];
//創(chuàng)建可變數(shù)組images氯析,負(fù)責(zé)存放要播放的圖片數(shù)組
for(NSIntegeri =0; i <30; i++) {
//根據(jù)I來(lái)加載圖片,添加到可變數(shù)組IMAGES里面莺褒、
//格式化圖片
NSString*imageName = [NSStringstringWithFormat:@"footleft_%02ld.jpg",i];
//根據(jù)格式化的圖片名加載圖片image
UIImage*image = [UIImageimageNamed:imageName];
//將圖片image添加到數(shù)組images中
[imagesaddObject:image];
}
//設(shè)置動(dòng)畫(huà)圖片數(shù)組
self.TomCatView.animationImages= images;
//設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)
self.TomCatView.animationDuration=30*0.075;
//重復(fù)次數(shù)
self.TomCatView.animationRepeatCount=1;
//開(kāi)始動(dòng)畫(huà)
[self.TomCatViewstartAnimating];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
小結(jié):
經(jīng)過(guò)上面的代碼我們知道大部分的按鈕設(shè)置都是一樣的代碼掩缓,這樣無(wú)論寫(xiě)起來(lái)還是看起來(lái)都很繁瑣,我們可以通過(guò)一個(gè)代碼模板使其簡(jiǎn)單遵岩,代碼如下
其中圖片中
if([self.tomCatview isAnimating])
{
return;
}
是判斷是否在執(zhí)行該動(dòng)畫(huà)你辣,并且執(zhí)行時(shí)不能
按其他按鈕。
經(jīng)過(guò)代碼模板后,我們不需要每個(gè)按鈕都編寫(xiě)相似的代碼舍哄,只需寫(xiě)一句代碼即可
[self tomCatAnimationWithName:@"fart" withCount:28]
其他的也一樣只需要改變名字和圖片數(shù)量宴凉。