一种IOS中视图组织方法及系统技术方案

技术编号:15615842 阅读:116 留言:0更新日期:2017-06-14 03:18
本发明专利技术提供一种IOS中视图组织方法及系统,将原视图控制器中的view、network、delegate等逻辑封装成一个一个的子视图控制器,每种样式的view对应一种子视图控制器,在其内部去处理各自的view、network、delegate等逻辑。然后将各子视图控制器像搭积木一样来组成最终的视图控制器。本发明专利技术有效提升代码的结构化、易阅读和可维护性,提升代码应变需求变更的能力,提高版本迭代的速度。

【技术实现步骤摘要】
一种IOS中视图组织方法及系统
本专利技术涉及IOS视图
,更具体地,涉及一种IOS中视图组织方法及系统。
技术介绍
目前,iOS应用开发中用户看得见的界面都是通过视图控制器(viewcontroller)来组织调度的,在传统的苹果设计思路下,一个视图控制器中通常会处理视图(view)、网络请求(network)、代理(delegate)、其他(other)等部分的逻辑,如图1所示。在进行界面开发时,一般的流程是按照设计稿分析有哪些子视图,然后在一个视图控制器中用原生控件构造出一个个的子视图,装配子视图,最后实现设计稿的效果。伴随着移动互联网的发展,移动端应用程序功能越来越多,视图结构越来越复杂,早先在视图控制器中一个一个控件构造子视图的方案造成视图控制器里代码过多且不易维护,无法在其他视图控制器中复用。为解决上述技术问题,现有技术中出现了封装子视图的方案。在封装子视图的方案中,通过控件构造子视图的逻辑封装在了子视图的内部,在视图控制器中只需要直接构造已经封装好的子视图就可以直接使用,提升了视图控制器的一定的结构性。然而,现有封装子视图的方案只解决了视图控制器中的view部分的逻辑,network、delegate、other部分逻辑仍然都在一个视图控制器中处理,而由于这三部分逻辑都是依赖于view的逻辑的,在视图控制器内部需要根据view的不同而做不同的逻辑处理,造成可读性差和不好维护的问题。可读性差主要体现在所有逻辑都在一个视图控制器中处理,一大片一大片的代码不易阅读,同时在前面提到的view、network、delegate、other各部分逻辑分散不连贯。不好维护主要体现在当出现方案变更或需要进行扩展时,改动或扩展的成本非常高,因为当某个视图需要变更时,需要修改视图控制器中network、delegate、other部分中对应的依赖此视图的部分代码。
技术实现思路
本专利技术为克服上述问题或者至少部分地解决上述问题,提供一种IOS中视图组织方法和系统。根据本专利技术的一个方面,提供一种IOS中视图组织方法,包括:步骤1,将待构建视图中各子视图的UI视图类和与其对应的各逻辑分别封装在各个子视图控制器中;步骤2,基于所述各子视图控制器组成所述待构建视图的主视图控制器;所述主视图控制器通过调用各子视图控制器中的UI视图类和与其对应的各逻辑从而实现待构建视图的组织。根据本专利技术的另一个方面,提供一种IOS中视图组织系统,包括第一模块和第二模块:所述第一模块,与所述第二模块相连,用于将待构建视图中各子视图的UI视图类和与其对应的各逻辑分别封装在各个子视图控制器中;所述第二模块,与所述第一模块相连,用于基于所述各子视图控制器组成所述待构建视图的主视图控制器;所述主视图控制器通过调用各子视图控制器中的UI视图类和与其对应的各逻辑从而实现待构建视图的组织。本申请提出本专利技术描述了一种IOS中视图组织方法及系统,此方案主要思路是将原视图控制器中的view、network、delegate等逻辑封装成一个一个的子视图控制器,每种样式的view对应一种子视图控制器,在其内部去处理各自的view、network、delegate等逻辑。然后将各子视图控制器像搭积木一样来组成最终的视图控制器。本专利技术有效提升代码的结构化、易阅读和可维护性,提升代码应变需求变更的能力,提高版本迭代的速度。附图说明图1为现有技术中传统视图控制器结构示意图;图2为根据本专利技术实施例一种IOS中视图组织方法的整体流程示意图;图3为根据本专利技术实施例一种IOS中视图组织方法中所述构建的主视图控制器结构示意图;图4为根据本专利技术实施例一种IOS中视图组织系统的整体结构示意图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。本专利技术描述了一种结构化的视图组织方案,基于此方案可以构造出结构化、可读性强、维护成本低、扩展性强的视图控制器。主要思路是将原视图控制器中的view、network、delegate、other逻辑封装成一个一个的子视图控制器,每种样式的view对应一种子视图控制器,在其内部去处理各自的view、network、delegate、other逻辑。然后将各子视图控制器像搭积木一样来组成最终的视图控制器。示意图如图2所示。如图3,本专利技术一个具体实施例中,示出一种IOS中视图组织方法总体示意图。整体来说,包括:步骤1,将待构建视图中各子视图的UI视图类和与其对应的各逻辑分别封装在各个子视图控制器中;步骤2,基于所述各子视图控制器组成所述待构建视图的主视图控制器;所述主视图控制器通过调用各子视图控制器中的UI视图类和与其对应的各逻辑从而实现待构建视图的组织。在本专利技术另一个具体实施例中,一种IOS中视图组织方法,所述步骤1还包括:S11,将所述待构建视图拆分成各子视图:按照视图设计稿将视图拆分成一个一个的子视图view1、view2、…、viewN。生成各子视图相对应的UI视图类:针对每个视图创建与之对应的UIView子类ViewClass1、ViewClass2、…、ViewClassN(在iOS开发中,所有的视图都应该是UIView类或UIView的子类),并在这些子类中按照设计需要封装其构造逻辑。S12,基于所述各UI视图类生成与所述各子视图相对应的各子视图控制器、与所述各子视图相关的逻辑;生成与所述各子视图相关的逻辑:针对每个ViewClass,创建与之对应的视图控制器类即UIViewController的子类(在iOS开发中,所有的视图控制器都应该是UIViewController的子类)ViewController1、ViewController2、…、ViewControllerN,并在这些子类中封装其network、delegate、other等部分逻辑,并暴露handleNetwork、handleDelegate、handleOther等方法供外部调用(依赖具体场景不同,此三类方法能够有多个),这样做的好处是将每个视图的逻辑封装在自己的视图控制器中,符合高内聚标准,避免了后面将要提到的主视图控制器中出现大量的碎片代码(碎片代码指逻辑不连贯的代码)。而传统方案中没有视图控制器的封装,所有逻辑都是通过视图直接写在主视图控制器中,这样会造成主视图控制器中出现大量的和该视图相关的代码,最后造成逻辑不连贯而成为碎片代码。S13,基于不同子视图,将所述各UI视图类和所述相关的逻辑分别封装在所述各子视图控制器中。在本专利技术另一个具体实施例中,一种IOS中视图组织方法,所述步骤1还包括:步骤1中各逻辑还能够为:网络请求逻辑network、代理逻辑delegate和其他other逻辑(包括但不限于:用户交互事件响应逻辑、网络状态变更监听逻辑、网络请求逻辑和/或代理逻辑)。在本专利技术另一个具体实施例中,一种IOS中视图组织方法,所述步骤2中利用所述主视图控制器通过调用各子视图控制器中的UI视图类还包括:主视图控制器通过控制各子视图控制器,从各子视图控制器中获取对应的UI视图类并添加到主视图控制器的UI视图类中。在本专利技术另一个具体实施例中,一种IOS中视图组织方法,所述步骤2中本文档来自技高网
...
一种IOS中视图组织方法及系统

【技术保护点】
一种IOS中视图组织方法,其特征在于,包括:步骤1,将待构建视图中各子视图的UI视图类和与其对应的各逻辑分别封装在各个子视图控制器中;步骤2,基于所述各子视图控制器组成所述待构建视图的主视图控制器,所述主视图控制器调用各子视图控制器中的UI视图类和与其对应的各逻辑,实现待构建视图的组织。

【技术特征摘要】
1.一种IOS中视图组织方法,其特征在于,包括:步骤1,将待构建视图中各子视图的UI视图类和与其对应的各逻辑分别封装在各个子视图控制器中;步骤2,基于所述各子视图控制器组成所述待构建视图的主视图控制器,所述主视图控制器调用各子视图控制器中的UI视图类和与其对应的各逻辑,实现待构建视图的组织。2.如权利要求1所述的方法,其特征在于,所述步骤1还包括:S11,将所述待构建视图拆分成各子视图,并生成各子视图相对应的UI视图类;S12,基于所述各UI视图类生成与所述各子视图相对应的各子视图控制器、与所述各子视图相关的逻辑;S13,基于不同子视图,将所述各UI视图类和所述相关的逻辑分别封装在所述各子视图控制器中。3.如权利要求1所述的方法,其特征在于,所述步骤1中各逻辑能够包括:网络请求逻辑、代理逻辑、用户交互事件响应逻辑和/或网络状态变更监听逻辑。4.如权利要求1所述的方法,其特征在于,所述步骤2中利用所述主视图控制器通过调用各子视图控制器中的UI视图类还包括:主视图控制器通过控制各子视图控制器从各子视图控制器中获取对应的UI视图类并添加到主视图控制器的UI视图类中。5.如权利要求3所述的方法,其特征在于所述步骤2中利用所述主视图控制器通过调用各子视图控制器中的UI视图类,从各子视图控制器对应的各逻辑从而实现待构建视图的组织还包括:所述主视图控制器通过调用各子视图控制器中所封装的网络请求逻辑并添加到主视图控制器网络请求逻辑中;所述主视图控制器通过调用各子视图控制器中所封装的代理逻辑并添加到主视图控制器代理逻辑中;所述主视图控制器通过调用各子视图控制器中所封装的用户交互事件响应逻辑并添加到主视图控制器代理逻辑中;所述主视图控制器通过调用各子视图控制器中所封装的网络状态变更监听逻辑并添加到主视图控制器代理逻辑中。6.如权利要求1所述的方法,其特征在于,所述ViewClass为UIView的子类,子视图控制器...

【专利技术属性】
技术研发人员:黄露洋
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1