iOS并发动画回调程序的构建方法、回调方法及装置制造方法及图纸

技术编号:35455903 阅读:31 留言:0更新日期:2022-11-03 12:13
本申请提供一种iOS并发动画回调程序的构建方法、回调方法及装置,在视图控制器中创建n个视图并添加,在视图控制器中创建n个动画对象,对应添加到n个视图中;创建n个代理对象,对应设置为n个动画对象的代理,并增加代理对象对视图的引用,再将视图控制器作为每个代理对象的代理。此种方式可以在动画对象执行结束后,利用代理对象进行回调,进一步利用增设的代理方法或block回调方法通知视图控制器动画完成。利用延长代理链方式,通过对动画的代理对象单独管理,实现代理和动画一对一,改变一般写法代理和动画一对多的情况,增加动画的可控性,可以简单高效且可靠地实现高并发动画回调。调。调。

【技术实现步骤摘要】
iOS并发动画回调程序的构建方法、回调方法及装置


[0001]本申请涉及软件开发
,具体而言,涉及一种iOS并发动画回调程序的构建方法、回调方法及装置。

技术介绍

[0002]iOS开发中,为提高用户体验,增加APP的趣味性、直观性、营造氛围常常会使用一些动画,单一iOS动画的满足大部分需要,但是某些特定的场景,需要多种样式且多个数量的动画在同一页面并发播放,这时会产生动画回调难以区分,某些动画结束后需要做其他后续逻辑操作往往会面临很大的困难,甚至无从下手。
[0003]目前iOS对于处理高并发动画常用方案大多数是做动画的视图和动画做绑定,通过绑定动画的逻辑在动画结束回调时,做移除动画操作或者动画之后的后续操作,或者采用动画队列的方式做动画和视图之间的隐式绑定操作。
[0004]现有的使用动画视图绑定方案和动画队列具有以下缺点:
[0005]1.使用视图动画绑定的方案,每一个动画都要设置不同的key(用于区分动画),通过key和视图的绑定,动画结束之后要对视图做删除操作,数据管理还要保证线程的安全,实现的复杂性比较高。
[0006]2.使用动画队列可以保证动画按顺序执行,如果出现动画执行的时间不同,也会出现难以区分动画回调的问题。

技术实现思路

[0007]本申请实施例的目的在于提供一种iOS并发动画回调程序的构建方法、回调方法及装置,利用延长代理链方式,通过对动画的代理对象单独管理,实现代理和动画一对一,改变一般写法代理和动画一对多的情况,增加动画的可控性,可以简单高效且可靠地实现高并发动画回调。
[0008]为了实现上述目的,本申请的实施例通过如下方式实现:
[0009]第一方面,本申请实施例提供一种iOS并发动画回调程序的构建方法,包括:创建视图控制器;在所述视图控制器中创建n个视图,并添加到所述视图控制器中,n为正整数;在所述视图控制器中创建n个动画对象,一一对应地添加到n个视图中;创建n个代理对象,一一对应地设置为n个动画对象的代理,并增加代理对象对视图的引用,再将所述视图控制器作为每个代理对象的代理,其中,每个代理对象遵循CAAnimationDelegate协议实现

(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag回调,且协议方法中增设有代理方法或block回调以通知所述视图控制器动画完成。
[0010]结合第一方面,在第一方面的第一种可能的实现方式中,创建n个视图View_i后,i=1,

,n,在所述视图控制器中创建n个动画对象,一一对应地添加到n个视图中,包括:在所述视图控制器中创建n个动画对象Animation_i;通过[view_i.layer addAnimation:Animation_iforKey:@"Animation_i"]方法把n个动画对象Animation_i一一对应地添加到
n个视图View_i的layer层。
[0011]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,创建n个代理对象,一一对应地设置为n个动画对象的代理,并增加代理对象对视图的引用,再将所述视图控制器作为每个代理对象的代理,包括:创建n个代理对象AnimationManager_i;将n个代理对象AnimationManager_i一一对应地设置为n个动画对象Animation_i的代理;为n个代理对象AnimationManager_i一一对应地增加对n个视图View_i的引用;将所述视图控制器设置为n个代理对象AnimationManager_i的代理。
[0012]第二方面,本申请实施例提供一种iOS并发动画回调方法,视图控制器代理n个代理对象,每个代理对象又分别作为一个视图的代理,每个视图分别添加有一个动画对象,每个代理对象对其代理的动画对象对应的视图进行引用,每个代理对象遵循CAAnimationDelegate协议,且协议方法中增设有代理方法或block回调方法,所述iOS并发动画回调方法应用于任一代理对象,包括:本代理对象代理的视图所关联的动画对象执行结束后,遵循CAAnimationDelegate协议实现

(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag回调;利用增设的代理方法或block回调方法通知所述视图控制器动画完成。
[0013]第三方面,本申请实施例提供一种iOS并发动画回调程序的构建装置,包括:视图控制器创建单元,用于创建视图控制器;视图创建单元,用于在所述视图控制器中创建n个视图,并添加到所述视图控制器中,n为正整数;动画对象创建单元,用于在所述视图控制器中创建n个动画对象,一一对应地添加到n个视图中;代理对象创建单元,用于创建n个代理对象,一一对应地设置为n个动画对象的代理,并增加代理对象对视图的引用,再将所述视图控制器作为每个代理对象的代理,其中,每个代理对象遵循CAAnimationDelegate协议实现

(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag回调,且协议方法中增设有代理方法或block回调以通知所述视图控制器动画完成。
[0014]结合第三方面,在第三方面的第一种可能的实现方式中,所述视图创建单元创建n个视图View_i后,i=1,

,n,所述动画对象创建单元,具体用于:在所述视图控制器中创建n个动画对象Animation_i;通过[view_i.layer addAnimation:Animation_i forKey:@"Animation_i"]方法把n个动画对象Animation_i一一对应地添加到n个视图View_i的layer层。
[0015]结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述代理对象创建单元,具体用于:创建n个代理对象AnimationManager_i;将n个代理对象AnimationManager_i一一对应地设置为n个动画对象Animation_i的代理;为n个代理对象AnimationManager_i一一对应地增加对n个视图View_i的引用;将所述视图控制器设置为n个代理对象AnimationManager_i的代理。
[0016]第四方面,本申请实施例提供一种iOS并发动画回调装置,视图控制器代理n个代理对象,每个代理对象又分别作为一个视图的代理,每个视图分别添加有一个动画对象,每个代理对象对其代理的动画对象对应的视图进行引用,每个代理对象遵循CAAnimationDelegate协议,且协议方法中增设有代理方法或block回调方法,所述iOS并发动画回调装置应用于任一代理对象,包括:代理对象回调单元,用于在本代理对象代理的视图所关联的动画对象执行结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种iOS并发动画回调程序的构建方法,其特征在于,包括:创建视图控制器;在所述视图控制器中创建n个视图,并添加到所述视图控制器中,n为正整数;在所述视图控制器中创建n个动画对象,一一对应地添加到n个视图中;创建n个代理对象,一一对应地设置为n个动画对象的代理,并增加代理对象对视图的引用,再将所述视图控制器作为每个代理对象的代理,其中,每个代理对象遵循CAAnimationDelegate协议实现

(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag回调,且协议方法中增设有代理方法或block回调以通知所述视图控制器动画完成。2.根据权利要求1所述的iOS并发动画回调程序的构建方法,其特征在于,创建n个视图View_i后,i=1,

,n,在所述视图控制器中创建n个动画对象,一一对应地添加到n个视图中,包括:在所述视图控制器中创建n个动画对象Animation_i;通过[view_i.layer addAnimation:Animation_i forKey:@"Animation_i"]方法把n个动画对象Animation_i一一对应地添加到n个视图View_i的layer层。3.根据权利要求2所述的iOS并发动画回调程序的构建方法,其特征在于,创建n个代理对象,一一对应地设置为n个动画对象的代理,并增加代理对象对视图的引用,再将所述视图控制器作为每个代理对象的代理,包括:创建n个代理对象AnimationManager_i;将n个代理对象AnimationManager_i一一对应地设置为n个动画对象Animation_i的代理;为n个代理对象AnimationManager_i一一对应地增加对n个视图View_i的引用;将所述视图控制器设置为n个代理对象AnimationManager_i的代理。4.一种iOS并发动画回调方法,其特征在于,视图控制器代理n个代理对象,每个代理对象又分别作为一个视图的代理,每个视图分别添加有一个动画对象,每个代理对象对其代理的动画对象对应的视图进行引用,每个代理对象遵循CAAnimationDelegate协议,且协议方法中增设有代理方法或block回调方法,所述iOS并发动画回调方法应用于任一代理对象,包括:本代理对象代理的视图所关联的动画对象执行结束后,遵循CAAnimationDelegate协议实现

(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag回调;利用增设的代理方法或block回调方法通知所述视图控制器动画完成。5.一种iOS并发动画回调程序的构建装置,其特征在于,包括:视图控制器创建单元,用于创建视图控制器;视图创建单元,用于在所述视图控制器中创建n个视图,并添加到所述视图控制器中,n为正整数;动画对象创建单元,用于在所述视图控制器中创建n个动画对象,一一对应地添加到n...

【专利技术属性】
技术研发人员:吴志博唐进叶世昌段凌云
申请(专利权)人:贵阳语玩科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1