zoukankan      html  css  js  c++  java
  • 简单动画的制作,分别用UIImageView的属性animationgImage和定时器NSTimer制作

    ViewController的 .h文件

    #import <UIKit/UIKit.h>

    @interface ViewController : UIViewController

    @property (strong,nonatomic) UIImageView *myImageView0;

    @property (strong,nonatomic) UIButton *myButton;

    @property (strong,nonatomic) NSArray *myArray;

    @property (strong,nonatomic) NSTimer *myTimer;

    @end

    //ViewController的 .m文件

    #import "ViewController.h"

     @interface ViewController ()

    @end

    @implementation ViewController

    //定义两个全局变量

    int numble=0

    int num=0

    - (void)viewDidLoad {

        [super viewDidLoad];

    self.view.background.Color=[UIColor lightGrayColor];

    //创建一个播放动画的视图

        self.myImageView0=[[UIImageView alloc]initWithFrame:CGRectMake(65, 50, 280, 280)];

            [self.view addSubview:self.myImageView0];

        

        //创建一个按钮,控制动画的播放和停止

        self.myButton=[[UIButton alloc]initWithFrame:CGRectMake(160, 350, 80, 40)];

    //改变按钮视图的颜色

        self.myButton.backgroundColor=[UIColor redColor];

    //改变按钮中字体的颜色

        [self.myButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

    //给按钮Button添加标题

        [self.myButton setTitle:@"停止" forState:UIControlStateNormal];

    //创建一个储存图画或动画序列帧的数组

    //将所有的图画存入数组中

        self.myArray=[NSArray arrayWithObjects:[UIImage imageNamed:@"0.png"],[UIImage imageNamed:@"1.png"],[UIImage imageNamed:@"2.png"],[UIImage imageNamed:@"3.png"],[UIImage imageNamed:@"4.png"],[UIImage imageNamed:@"5.png"],[UIImage imageNamed:@"6.png"],[UIImage imageNamed:@"7.png"],[UIImage imageNamed:@"8.png"],[UIImage imageNamed:@"9.png"],[UIImage imageNamed:@"10.png"],[UIImage imageNamed:@"11.png"],[UIImage imageNamed:@"12.png"],[UIImage imageNamed:@"13.png"],[UIImage imageNamed:@"14.png"], nil];

    //用UIImageView的属性animationImages

    //点击按钮触发是调用方法 suspend

    [self.myButton addTarget:self action:@selector(suspend) forControlEvents:UIControlEventTouchUpInside];

    //将(序列帧)图画数组赋给UIImageView的animationImages属性

        self.myImageView0.animationImages=self.myArray;

        //设置播放动画时间,一次动画播放完的时间

        self.myImageView0.animationDuration=3;

        //设置播放次数,次动画循环播放了多少次

        self.myImageView0.animationRepeatCount=10;

        //开始播放动画

        [self.myImageView0 startAnimating];

    //用定时器NSTimer

    //定时器,控制调用方法setNextImage,播放动画

        self.myTimer=[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(setNextImage) userInfo:nil repeats:YES];

        //当按钮Button被触发时调用suspend方法控制定时器的开与关

        [self.myButton addTarget:self action:@selector(suspend) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:self.myButton];

    }

    //按钮控制图画的停止、播放方法

    -(void)suspend

       {

           //用UIImageView的属性animationImages   

        if (numble%2==0) {

            [self.myButton setTitle:@"开始" forState:UIControlStateNormal];

    //动画的停止

            [self.myImageView0 stopAnimating ];

        } else {

            [self.myButton setTitle:@"停止" forState:UIControlStateNormal];

    //动画的播放

            [self.myImageView0 startAnimating ];

        }

        numble++;

    //定时器

    if (num%2==0) {

               //关闭定时器

               [self.myTimer setFireDate:[NSDate distantFuture]];

           } else {

               //开始定时器

               [self.myTimer setFireDate:[NSDate distantPast]];

           }

           num++;

    }

    //定时器控制的图片、动画的播放的方法

    -(void)setNextImage

    {

    //numble%15中的15是图片的数量,也就是帧数,你有多少张图片或者多少帧图片,15就写成多少,你也可以设成一个变量,上面的集合也可设成可变的,集合有多少成员就是多少

        self.myImageView0.image=[UIImage imageNamed:[NSString stringWithFormat:@"%i.png",numble%15]];

        numble++;

    }

    @end

  • 相关阅读:
    jsp页面的基本语法
    servlet转发与重定向
    servlet配置及其生命周期
    Java--普通代码块静态代码块执行顺序
    Maven简述
    JDBCTemplate
    AOP--Aspect Oriented Programming
    SpringMVC---简单练手项目
    SpringMVC---进阶篇
    SpringMVC---基础篇(2)
  • 原文地址:https://www.cnblogs.com/Always-LuoHan/p/5277386.html
Copyright © 2011-2022 走看看