view在做动画的时候不响应点击解决办法

本文介绍了一种在iOS应用中实现按钮放大缩小动画的方法,并确保在动画播放期间按钮仍能响应用户点击事件。通过设置UIView动画选项UIViewAnimationOptionAllowUserInteraction实现这一目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比如一个按钮,在做放大缩小或者位移动画时无法响应点击事件 。设置对应的options 即可使他响应点击事件 。

- (void)scaleAnimation:(UIView *)view {
    if (动画结束条件) return;
    [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction  animations:^{
         view.transform = CGAffineTransformScale(view.transform, 1.05, 1.05);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveEaseInOut animations:^{
            view.transform = CGAffineTransformIdentity;
        } completion:^(BOOL finished) {
            [self scaleAnimation:view];
        }];
    }];
}

指定options:  UIViewAnimationOptionAllowUserInteraction 即可在视图做动画的同时可以响应点击事件 。options 是逻辑或的关系可以指定多种options ,中间用 | 隔开 。

注意:用这种循环的方式做动画的话,一定要指定动画结束的条件,否则会产生循环引用导致view 一直无法释放掉 。

转载于:https://my.oschina.net/zhxx/blog/1612527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值