一种iOS系统设备上多层弹框的自动管理方法和系统与流程

文档序号:11154389阅读:531来源:国知局
本发明涉及消息交互领域,具体涉及一种iOS系统设备上多层弹框的自动管理方法和一种iOS系统设备上多层弹框的自动管理系统。
背景技术
::运行于iOS系统设备上的APP(Application,应用程序),为了使用户和APP间进行友好的交互,在一些使用场景中,APP在iOS系统设备上通过弹框的方式为用户提供提示、通知、警告或功能等信息,以便于用户根据这些信息进行下一步的操作。APP大多会选择弹框与用户间进行交互,在复杂的应用场景下,iOS系统设备上出现多个弹框,各个弹框间相互叠加,缺少对弹框的统一管理规则,极大地降低了用户的体验。技术实现要素:针对现有技术中存在的缺陷,本发明的目的在于提供一种iOS系统设备上多层弹框的自动管理方法和一种iOS系统设备上多层弹框的自动管理系统,自动便捷地管理多层级弹窗视图。为达到以上目的,本发明采取的技术方案是:所述弹窗视图添加有弹窗层级属性,该方法包括:创建用以存储弹窗视图指针的弹窗数组和用以管理弹窗视图的弹框管理类;当新弹窗视图出现,弹框管理类根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中,且弹窗层级优先级高的弹窗视图指针位于弹窗层级优先级低的弹窗视图指针之前;按照弹窗数组中由前到后的指针排列顺序依次展示指针对应的弹窗视图,展示的弹窗视图外的弹窗视图均为隐藏状态,且在弹窗视图展示结束后移除弹窗数组中对应的指针。在上述技术方案的基础上,所述弹窗视图包括入栈指令和出栈指令,所述入栈指令表示弹窗视图出现,所述出栈指令表示弹窗视图消失。在上述技术方案的基础上,对于出现的新弹窗视图:步骤S2.1:调用弹窗视图的入栈指令,通知弹框管理类出现弹窗视图;步骤S2.2:弹框管理类根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中。在上述技术方案的基础上,当一弹窗视图展示结束后,还包括以下步骤:步骤S3.1:调用弹窗视图的出栈指令,通知弹框管理类弹窗视图展示结束;步骤S3.2:弹框管理类移除展示结束的弹窗视图在弹窗数组中的指针,并释放展示结束的弹窗视图。在上述技术方案的基础上,所述弹窗层级由Objective-C中的Runtime机制添加。本发明还包括一种iOS系统设备上多层弹框的自动管理系统,包括:创建模块,其用于创建用以存储弹窗视图指针的弹窗数组,所述弹窗视图添加有弹窗层级属性;判断模块,其用于根据弹窗视图的弹窗层级的优先级别,将弹窗视图的指针存于弹窗数组中;展示模块,其用于根据指针在弹窗数组中的排列顺序依次展示指针对应的弹窗视图。在上述技术方案的基础上,弹窗数组中,弹窗层级优先级高的弹窗视图指针位于弹窗层级优先级低的弹窗视图指针之前。在上述技术方案的基础上,所述展示模块根据弹窗数组中由前到后的指针排列顺序依次展示指针对应的弹窗视图,且当一弹窗视图展示结束后,移除弹窗数组中对应的指针。在上述技术方案的基础上,除正在展示的弹窗视图外,其它弹窗视图均为隐藏状态。在上述技术方案的基础上,所述弹窗视图包括入栈指令和出栈指令,所述入栈指令表示弹窗视图出现,所述出栈指令表示弹窗视图消失。与现有技术相比,本发明一种iOS系统设备上多层弹框的自动管理方法的优点在于:(1)在展示弹窗视图时,若出现新的弹窗视图,弹框管理类会根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中,即弹窗视图指针的存储和弹窗视图的展示,两者能够独立并同时进行,提高对弹窗视图的管理效率。(2)在弹窗视图展示结束后,对展示结束的弹窗视图立即释放,释放出内存,使的本发明的弹窗管理几乎没有内存消耗,提高iOS设备的利用率。(3)弹窗视图仅在出现和展示完毕时发送消息给弹框管理类,无需考虑其它弹窗视图的情况,使的对多层弹窗视图的管理更加有序。本发明一种iOS系统设备上多层弹框的自动管理系统的优点在于:判断模块根据弹窗视图的弹窗层级的优先级别,将弹窗视图的指针存于弹窗数组中,然后展示模块根据弹窗视图的指针在弹窗数组中的排列顺序展示弹窗视图,且弹窗视图指针在弹窗数组中的存储和弹窗视图的展示,两者能够同时且独立进行,极大地提高了对多层弹窗视图的管理效率。附图说明图1为本发明一种iOS系统设备上多层弹框的自动管理方法的流程图;图2为处理新弹窗视图的流程图;图3为处理展示结束弹窗视图的流程图。具体实施方式以下结合附图对本发明作进一步详细说明。参见图1所示,本发明提供一种iOS系统设备上多层弹框的自动管理方法,用于对iOS系统设备,如iphone手机上的弹窗视图进行管理。本方法包括:步骤S1:创建用以存储弹窗视图指针的弹窗数组和用以管理弹窗视图的弹框管理类。弹窗数组的属性为NSMutableArray类,NSMutableArray类常用来存放一些指定类型的元素。对于iOS系统设备上的弹窗视图,添加弹窗层级属性,即iOS系统设备上无论是已经出现或还未出现的弹窗,均会含有弹窗层级,弹窗层级属于整型类型的联合属性。对于弹窗视图的弹窗层级的添加方法如下:为弹窗视图的基类UIView添加分类Category,基类UIView用于定义iOS系统设备上的一块矩形区域,iOS系统设备上的大多数弹窗视图均继承于基类UIView,然后运用Objective-C中的Runtime机制为基类UIView添加一个管理类的单例对象用以管理所有继承于基类UIView的弹窗视图。分类Category用于将类的实现分散到多个不同文件或多个不同框架中。然后运用Objective-C中的Runtime机制给弹窗视图添加弹窗层级,Objective-C为扩充C的面向对象编程语言,Runtime是指一个程序在运行或者被执行的状态。弹窗视图还包括入栈指令和出栈指令,入栈指令表示弹窗视图出现,出栈指令表示弹窗视图消失,入栈指令和出栈指令属于公共方法,且该公共方法的创建基于基类UIView中添加的分类Category。步骤S2:当新弹窗视图出现,弹框管理类根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中,弹窗数组中,弹窗层级优先级高的弹窗视图指针位于弹窗层级优先级低的弹窗视图指针之前。具体的:步骤S2.1:调用弹窗视图的入栈指令,通知弹框管理类出现弹窗视图,相当于告知弹框管理类有新弹窗视图出现,由于分类是对类的扩展,因此这里可以直接调用入栈指令,无需依赖其它类,因而避免了耦合现象的发生;步骤S2.2:弹框管理类根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中;具体的:每个存于弹窗数组中的指针均对应有一索引位置,索引位置即表示指针的排列顺序,在将新弹窗视图的指针存于弹窗数组前,遍历弹窗数组已存有的指针对应的弹窗视图的弹窗层级,根据弹窗数组中的指针,以及指针对应弹窗视图的弹窗层级,遵循排于优先级低的弹窗视图之前,排于优先级高的弹窗视图之后的原则,找到将的新弹窗视图的指针的索引位置,将的新弹窗视图的指针存于弹窗数组中。若弹窗数组中指针对应的弹窗视图的弹窗层级均比新弹窗视图的弹窗层级高,则新弹窗视图的指针的索引位置在弹窗数组最末。若新弹窗视图的指针不是排于弹窗数组中所有指针最前,则隐藏新弹窗视图,至此,除正在展示的优先级最高的弹窗视图外,其它弹窗视图均为隐藏状态。步骤S3:按照弹窗数组中由前到后的指针排列顺序依次展示指针对应的弹窗视图,且当一弹窗视图展示结束后,移除弹窗数组中对应的指针,即将展示结束弹窗视图的指针移除,接着按照指针排列顺序,展示下一个弹窗视图,依此类推。展示的弹窗视图外的弹窗视图均为隐藏状态。具体的,当一弹窗视图展示结束后,还包括:步骤S3.1:调用弹窗视图的出栈指令,通知弹框管理类弹窗视图展示结束,相当于告知弹框管理类当前弹窗视图展示结束;步骤S3.2:弹框管理类移除展示结束的弹窗视图在弹窗数组中的指针,并释放展示结束的弹窗视图。在展示弹窗视图时,若出现新的弹窗视图,同样的,弹框管理类会根据新弹窗视图弹窗层级的优先级,将新弹窗视图的指针存于弹窗数组中,即弹窗视图指针的存储和弹窗视图的展示,两者能够独立并同时进行。对于出现的新弹窗视图,参见图2所示,本发明对于新弹窗视图的处理流程为:调用新弹窗视图的入栈指令,通知弹框管理类出现新的弹窗视图,同时基于新弹窗视图的属性,展示的优先级别,给新弹窗视图添加弹窗层级;弹框管理类接受到通知,基于新弹窗视图的弹窗层级,遍历弹窗数组,判断新弹窗视图指针存入弹窗数组的位置,并将新弹窗视图指针存于弹窗数组中;若新弹窗视图指针在弹窗数组的位置为最前端,即新弹窗视图的弹窗层级优先级最高,则展示新弹窗视图,否则隐藏新弹窗视图。对于展示结束的弹窗视图,参见图3所示,本发明对于展示结束的弹窗视图的处理流程为:调用展示结束的弹窗视图的出栈指令,通知弹框管理类有弹窗视图展示结束;弹框管理类接收到通知,将展示结束的弹窗视图的指针从弹窗数组中移除,并释放(删除)展示结束的弹窗视图。同时还可以通过单例模式,将本发明的管理方法仅存在于某个程序的生命周期,无需额外地创建对象,节省内存。在弹窗视图展示结束后,对展示结束的弹窗视图立即释放,释放出内存,使的本发明的弹窗管理几乎没有内存消耗。通过分类的设计方式,根据弹窗视图的弹窗层级,将弹窗视图存于弹窗数组中,并隐藏弹窗视图,降低了类之间的耦合度。弹窗视图仅在出现和展示完毕时发送消息给弹框管理类,无需考虑其它弹窗视图的情况,从而达到自动便捷管理多层级弹窗视图的目的。本发明还公开了一种基于上述多层弹窗自动管理方法的iOS系统设备上多层弹框的自动管理系统,包括创建模块、判断模块和展示模块。创建模块用于创建用以存储弹窗视图指针的弹窗数组,弹窗视图添加有弹窗层级属性。判断模块用于根据弹窗视图的弹窗层级的优先级别,将弹窗视图的指针存于弹窗数组中,弹窗数组中,弹窗层级优先级高的弹窗视图指针位于弹窗层级优先级低的弹窗视图指针之前。展示模块用于根据指针在弹窗数组中的排列顺序依次展示指针对应的弹窗视图,具体的,展示模块根据弹窗数组中由前到后的指针排列顺序依次展示指针对应的弹窗视图,且当一弹窗视图展示结束后,移除弹窗数组中对应的指针。弹窗数组中,所有指针对应的弹窗视图,除正在展示的弹窗视图外,其它弹窗视图均为隐藏状态弹窗视图还包括入栈指令和出栈指令,入栈指令表示弹窗视图出现,出栈指令表示弹窗视图消失。当新弹窗视图出现时,新弹窗视图会调用入栈指令告知判断模块,然后判断模块根据新弹窗视图的弹窗层级的优先级别,将新弹窗视图的指针存于弹窗数组中;当弹窗视图展示结束后,展示结束的弹窗视图调用出栈指令告知展示模块,展示模块移除展示结束的弹窗视图,以及展示结束的弹窗视图在弹窗数组中的指针。判断模块根据弹窗视图的弹窗层级的优先级别,将弹窗视图的指针存于弹窗数组中,然后展示模块根据弹窗视图的指针在弹窗数组中的排列顺序展示弹窗视图,且弹窗视图指针在弹窗数组中的存储和弹窗视图的展示,两者能够同时且独立进行,极大地提高了对多层弹窗视图的管理效率。本发明不局限于上述实施方式,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1