iOS Swift 给动画添加点击事件

iOS Swift 给动画添加点击事件,第1张

当前View里面有两个View,绿色的bigView和红色的smallView,smallView在bigView里面。现在让bigView执行一段移动动画,然后给bigView添加点击事件,发现点击事件无效。

因为 iOS动画中的View点击事件无效

原因是iOS里几乎所有的View动画是都基于layer实现的,frame在动画开始会直接变成终点状态。动画过程中bigView的frame不会变化,也不能接收点击事件。添加点击事件可以在bigView的父view也就是当前view中重写touchesBegan() 方法,判断点击位置在哪个view里面。

添加完touchesBegan(),会发现点击bigView动画这个方法并不会触发,原因是动画中的layer会屏蔽触摸事件。这时有两种方法(效果相同):

这样点击事件就会传递给当前view

接下来判断点击位置在哪个View里。

用 touch.location(in: self) 获取触摸点在当前view中的位置;用bigView.layer.presentation()?.frame可以获取动画中的layer的frame。

创建一个影片剪辑

在默认图层的第

一帧

画一个图形,这将被作为按钮

选中按钮,点右键,找到:转换为元件

然后选择转换为按钮

然后选中该图层的第一帧,在动作面板内用stop语句使其停止

之后在其它图层做你的动画

做好之后,选中你做的按钮,在动作面板内输入:

on

(release)

{gotoAndPlay(几帧)

}

就可以了。然后在你做的这个影片剪辑最后一帧放上stop语句使其不重复播放,或者你可以添加其他效果。

1、首先需要将2个物体都添加好动画事件;

2、在ppt的菜单选项选中动画,在动画中找到动画窗格并打开;

3、此时在ppt的右侧能看到这张ppt上有的个动画事件,选中后一个动画并单击右键,将其选择为从上一项开始。此时再去播放ppt,2个动画即可同步播放。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11864946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存