美文网首页
循环动画中不能接收事件

循环动画中不能接收事件

作者: 未来可期me | 来源:发表于2021-03-24 17:47 被阅读0次

工作中遇到一个需求是在一个页面中使用定时器来执行一个呼吸动画形式的动画过程,但是在呼吸动画过程中需要view来响应事件,具体实现贴上代码:

// 添加定时器来实现呼吸动画效果,leftView与rightView也需要响应事件

  • (void)addAnimateTimer {

MJWeakSelf

_timer = [NSTimer timerWithTimeInterval:2 block:^(NSTimer * _Nonnull timer) {

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{

weakSelf.rightView.transform = CGAffineTransformMakeScale(1.1, 1.1);

weakSelf.leftView.transform = CGAffineTransformMakeScale(0.9, 0.9);

} completion:^(BOOL finished) {

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAllowUserInteraction animations:^{

    weakSelf.leftView.transform = CGAffineTransformIdentity;

    weakSelf.rightView.transform = CGAffineTransformIdentity;

} completion:nil];

}];

} repeats:YES];

[[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSDefaultRunLoopMode];

}

动画执行效果没问题,但是我给leftView与rightView两个view中都添加了点击手势,动画效果实现后,两个view的点击手势无法响应事件,所以这里需要设置一下在动画过程中需要让view来响应事件,重点:

执行动画参数中options需要设置成为UIViewAnimationOptionAllowUserInteraction

相关文章

  • 循环动画中不能接收事件

    工作中遇到一个需求是在一个页面中使用定时器来执行一个呼吸动画形式的动画过程,但是在呼吸动画过程中需要view来响应...

  • 《浏览器工作原理与实践》学习笔记(四)

    消息队列和事件循环 要想在线程运行过程中,能接收并执行新的任务,就需要采用事件循环机制。 事件循环机制:相比于线性...

  • Runloop学习

    什么是Runloop: RunLoop是一个接收处理异步消息事件的循环,一个循环中:等待事件发生,然后将这个事件送...

  • ios RunLoop

    RunLoop是一个接收处理异步消息事件的循环,一个循环中:等待事件发生,然后将这个事件送到能处理它的地方。 如图...

  • ios给动画中的view添加点击事件

    动画中的view,其frame不在肉眼所见的位置,所以需要其他方式接收点击事件。 步骤1:将点击事件指向view ...

  • Runloop底层原理

    1.runloop是什么? runLoop是一个接收处理异步消息事件的循环,一个循环中:等待事件发生,然后将这个事...

  • iOS中的Runloop

    摘要 本文介绍iOS中的事件循环Runloop; Runloop 是什么 Runloop是事件接收和分发机制的一个...

  • Runloop

    1.解释 运行循环是与线程关联的基础结构的一部分。运行循环是一个事件处理循环,用于调度工作并协调接收传入事件。 2...

  • UIView事件接收

    设置控件是否可以接收事件 不能接收事件:感受不到手指的触摸(相当于死人)能接收事件:能感受到手指的触摸并不是能够接...

  • iOS开发篇 - 触摸事件传递&事件响应链

    触摸事件的传递 触摸事件的传递是从父控件传递到子控件 如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件...

网友评论

      本文标题:循环动画中不能接收事件

      本文链接:https://www.haomeiwen.com/subject/opvhhltx.html