iOS下UIButton压下后播放动画,松开后动画消失的实现

需求:页面上有个按钮,用户要求当手指按下这个按钮的时候,在这个按钮的周围出现一个旋转的圆圈,当松开手指后这个动画消失。

具体的页面布局和事件绑定的方式我就不再描述了。这里只说一下需要帮定的UIButton的事件吧,压下的方法要绑定的UIButton事件是的Touch Down,松开的方法要绑定的UIButton事件是Touch Up InsideTouch Up Outside(如果你想当手指离开按钮的时候就取消动画的播放,你需要在绑定Touch Drag Outside事件)

-(void)pressedEvent:(id)sender {//按钮的压下事件的响应方法
    UIButton *btn = sender;
    NSArray *imgArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"anim_0"],[UIImage imageNamed:@"anim_1"],[UIImage imageNamed:@"anim_2"],[UIImage imageNamed:@"anim_3"],nil];//定义一个动画的帧数组
    UIImageView *animImgView = [[UIImageView alloc]init];//初始化一个UIImageView用于逐帧播放我们的动画
    animImgView.frame = CGRectMake(0, 0, ((UIImage*)[imgArray objectAtIndex:0]).size.width, ((UIImage*)[imgArray objectAtIndex:0]).size.height);//这里默认认为动画的每帧大小是一致的,顾取出第一个图片的大小来作为UIImageView的大小
    animImgView.center = btn.center;//上边只是这是了UIImageView的大小,这里设置他的摆放位置,让动画的中心点和按钮的中心点重叠
    animImgView.tag = 10000;//设置这个是为了在压下的按钮触发的释放动作中获取到这个播放动画的UIImageView
    animImgView.animationImages = imgArray; //将逐帧动画的数组传递给UIImageView
    animImgView.animationDuration = 1; //浏览所有图片一次所用的时间
    animImgView.animationRepeatCount = 0; // 0 = loops forever 动画重复次数
    [animImgView startAnimating]; //开始播放动画
    [self.view addSubview:animImgView]; //添加视图到窗体中
    [self.view sendSubviewToBack:animImgView];//将动画播放的视图移到elf.view的最底层,这里需要注意图层遮挡问题
    [animImgView release];
}
-(void)unpressedEvent:(id)sender {//按钮的松开事件的响应方法
    [[self.view viewWithTag:10000] removeFromSuperview];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值