UI基础-day02-帧动画-01基本实现

效果图

UI基础-day02-帧动画-01基本实现_第1张图片

需求:

  1. 纯代码实现,界面布局(两个按钮,一个图片)
  2. 实现按钮的对应功能("站立"和"大招"的动画)

代码(部分):

-(void)layoutUI{
    //UIImageView
    self.imgViewTemp = [[UIImageView alloc]init];
    self.imgViewTemp.frame = CGRectMake(20, 20, 341, 600);
    self.imgViewTemp.backgroundColor = [UIColor redColor];
//保存源图片尺寸,靠左下角对齐!
    self.imgViewTemp.contentMode = UIViewContentModeBottomLeft;
    UIButton * btnStand = [[UIButton alloc]initWithFrame:CGRectMake(100, 70, 40, 40)];
    [btnStand setTitle:@"站立" forState:(UIControlStateNormal)];
    [btnStand setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];//正常状态
//事件
    [btnStand addTarget:self action:@selector(btnStandClick:) forControlEvents:(UIControlEventTouchDown)];
...
    [self.view addSubview:self.imgViewTemp];
    [self.view addSubview:btnStand];
    [self.view addSubview:btnDazhao];
    
}
// 执行动画
-(void)btnStandClick:(UIButton *)send{
    //将图片存放在 NSMutableArray里面
    NSMutableArray * standMArray = [NSMutableArray array];
    for (int i=0; i<10; i++) {
        NSString *str = [NSString stringWithFormat: @"stand_%d",i+1];
        UIImage *imgTemp = [UIImage imageNamed:str];
        [standMArray addObject: imgTemp];
    }
    /*
     animationImages 是 NSArray类型
     NSArray,表示animationImages是不可变数组,并且数组里面只能存放UIImage类型.
     standMArray 是NSMutableArray类型,NSMutableArray继承NSArray!
     所以直接使用就可,self.imgViewTemp.animationImages = standMArray;不需要转换(会自动转换)!
     当然,手动转换也可以
     NSArray *myArray = [standMArray copy];
     self.imgViewTemp.animationImages = myArray; //显示的动画
     */
    self.imgViewTemp.animationImages = standMArray;
    self.imgViewTemp.animationRepeatCount = 4; // 执行次数
    [self.imgViewTemp startAnimating]; //开始动画
}

重点

  1. contentMode 图片显示方式
  2. UIControlState 按钮状态
  3. addTarget 按钮的事件
  4. animationImages - 动画对象数组
    animationRepeatCount - 动画执行次数
    startAnimating -开始动画

你可能感兴趣的:(UI基础-day02-帧动画-01基本实现)