关于 iOS UIButton执行动画后点击按钮无法响应事件的问题.

因为业务需求需要写一个按钮 旋转 放大 然后移动到指定位置的需求.然后顺势很快将动画给动画搞定了.但是随之而来的遇到了两个问题(如下):

1.动画执行完后立马回到了原始位置.

解决方法(组动画): 

     CAAnimationGroup *groupAnimation = [CAAnimationGroup animation];

    groupAnimation.removedOnCompletion=NO;

     groupAnimation.fillMode=kCAFillModeForwards;

2. btn位置移动后点击事件失效问题.(因为动画改编的是layer,所以btn的frame其实还是原来的位置.所以响应的事件还是原来的位置.不信你可以点一下你原来的位置.还是可以响应事件的)

解决方法:

1.给改btn的父视图添加点击手势

 UITapGestureRecognizer * viewTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(moreBtnTaped:)];

 [self.view addGestureRecognizer:viewTap];

2.通过手势方法进行layer的判断添加方法.(不过这时候的btn的点击效果就没了  悲催(还好产品总监不管这))

- (void)moreBtnTaped:(UITapGestureRecognizer*)sender{

    CGPointtouchPoint = [senderlocationInView:self.view];

    if ([self.moreBtn.layer.presentationLayer hitTest:touchPoint])

    {

        [self.viewmakeToast:@"更多按钮"];

    }

}


OK,至此出现的两个问题解决了.

你可能感兴趣的:(关于 iOS UIButton执行动画后点击按钮无法响应事件的问题.)