专利名称:一种基于mac os操作系统上实现树状结构的方法及装置的制作方法
技术领域:
本发明涉及电子通讯技术领域,尤其涉及一种基于mac os操作系统上实 现树状结构的方法及装置。
背景技术:
Apple公司是全球著名的电子公司,总部位于美国加利福尼亚的库比提 诺,以电子科技产品作为核心业务。目前在全球占有3.8。/。的电脑市场。Apple 公司的电脑产品Apple 1l于1970年代助长了个人电脑革命,与其相比在其后推 出的Mac (Macintosh,麦金塔电脑)电脑接力于1980年代持续发展。Apple 公司出品的最知名的产品包括Apple II、 Mac电脑、iPod数位音乐播放器和 iTunes音乐商店,它在高科l支企业中以创新而闻名。
Apple公司在2007年1月9日推出了 一款智能手机一一iPhone。 iPhone手 机的操作系统称作iPhone OS (Operating System,操作系统),可以看做 是MacOS的简化版操作系统。在2008年3月6日,又正式推出iPhone开发平 台(iPhone SDK),给SDK (Software Development Kit,软件开发工具 包)提供了大量API (Application Programming Interface,应用程序编程接 口),控件等,允许其他用户开发iPhone上的应用功能并发布。
基于mac os操作系统的iPhone开发平台是个特有的开发平台,在其独特 的技术支持下具有多种独特的功能,但在这些独特功能的实现过程中,若需 要将一些数据信息以树状关系的形式表达出来,只能利用列表控件的方式通 过至少两个窗口来表示其多层次关系,原因是现有的列表控件表达的只能是 同 一级别的兄弟关系。虽然通过现有列表控件的方式也能最终将信息表达出树状关系,但是对于用户体验上来说,采用这种方式会给用户带来大量的繁 瑣操作。
例如图1中示出了基于macos操作系统的iPhone开发平台中,应用列表 控件的方式将信息表示成树状关系的过程。用户在体验这种应用列表控件实 现树状关系时,需要不断的切换窗口获得每一级别的信息列表,特别是当树 状关系的层次大于3级的情况下,用户的大多时间更是花费到了窗口切换上, 很大程度降低了用户体验。
发明内容
本发明的提供了 一种基于mac os操作系统上实现树状结构的方法及装 置,能够利用现有的列表控件来实现多层次树状结构信息的表达,使用户不 必过多的切换窗口,提高了用户体验。
本发明提供了一种基于mac os操作系统上实现树状结构的方法,所述方 法包括
将要表达成树状结构的内容及对应的属性,对应的填入创建的至少一个 列表控件的各行中;所述属性包括该行或该行中的内容在所述树状结构中所 属的级别属性以及包括用于描述该行或该行中的内容所属级别是否还具有下 一级别的子节点属性;
根据所述树状结构的内容及对应的属性,将所述至少 一 个列表控件的各 行生成树状结构的显示页面。
进一步地,将要表达成树状结构的内容及对应的属性,对应的填入创建 的至少一个列表控的各行中,具体过程包括
创建至少 一个内容为空的列表控件;
将要表达成所述树状结构的内容分类后,根据分类后的内容计算确定所 述列表控件的行数;针对所述列表控件的每行分别增设所述属性,将所述分类后的内容及对 应的属性分别填入所述列表控件的各行中;或者,将要表达成树状结构的所 述内容分别填入所述列表控件的各行后,针对填入各行中的所述内容分别增 设所述属性,用于表示所述内容的树状结构。
进一步地,所述方法还包括
当该行或该行中的内容所属级别还具有下一级别时,所述属性还包括用 于表示是否要将所述下一级别的行或内容处于展开或者关闭的扩展属性。
进一步地,根据所述树状结构的内容及属性,将所述至少一个列表控件 的各行生成树状结构的显示页面,具体过程包括
根据所述属性中的级别属性,确定该行或该行中的内容起始位置缩进的 大小;
根据所述属性中的子节点属性,确定显示用于表示该行或该行中的内容 是否具有下 一级别的标识。
进一步地,所述方法还包括
对于具有所述下一级别的行或该行中的内容,根据所述属性中的扩展属 性,确定是否显示所述下一级别的行或该行中的内容。
本发明还提供了一种基于mac os操作系统上实现树状结构的装置,所述 装置包括
结构建立模块,用于将要表达成树状结构的内容及对应的属性,对应的 填入创建的至少一个列表控件的各行中;所述属性包括该行或该行中的内容 在所述树状结构中所属的级别属性以及包括用于描述该行或该行中的内容所 属级别是否还具有下 一 级别的子节点属性;
结构生成模块,用于根据所述树状结构的内容及对应的属性,将所述至 少 一个列表控件的各行生成树状结构的显示页面。
优选地,所述结构建立模块具体包括内容分类单元,用于将要表达成所述树状结构的内容进行分类;
列表控件创建单元,用于创建至少一个内容为空的列表控件,并根据所 述内容分类单元分类后的内容计算确定所述列表控件的行数;
属性设置单元,用于针对所述列表控件创建单元创建的列表控件中的每 行分别增设所述属性,并将所述分类后的内容及对应的属性分别填入所述列 表控件的各行中;或者,用于将要表达成树状结构的所述内容分别填入所述 列表控件的各行后,针对填入各行中的所述内容分别增设所述属性,用于表 示所述内容的树状结构。
优选的,所述属性设置单元,还用于当该行或该行中的内容所属级别还 具有下一级别的内容时,设置的属性还包括是否要将所述下一级别的行或内 容处于展开或者关闭的扩展属性。
优选的,所述结构生成模块具体包括
级别显示单元,用于根据所述属性中的级别属性,确定该行或该行中的 内容起始位置缩进的大小;
子节点显示单元,用于根据所述属性中的子节点属性,确定显示用于表 示该行或该行中的内容是否具有下一级别的标识。
优选的,所述结构生成模块具体还包括
展开状态显示单元,用于在所述子节点显示单元显示该行或该行中的内 容具有下一级别的标识后,根据所述属性中的扩展属性,确定是否显示所述 下一级别的行或该行中的内容。
本发明的有益效果
由上述本发明的实施例提供的技术方案可以看出,本发明以列表控件为 基础,继承了列表控件的特点,具有屏幕滚动时加速效果显著,内容优化的 优点。通过对列表控件中每行内容增设属性信息,可以清楚的展现所述列表 控件中各行之间的多层次关系。对于这种树状结构中的多层次关系,通常可以只通过一个窗口进行显示,避免了现有技术中采用列表控件借助多个窗口 实现树状关系的这种方式的弊端,提高了用户体验。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的 前提下,还可以根据这些附图获得其他的附图。
图1 a为现有技术的应用场景1;
图化为现有技术的应用场景2;
图2为本发明实施例一的应用场景图3为本发明实施例一的树状结构示意图4为本发明实施例一所述方法的简要流程图5a为本发明实施例一所述方法的应用场景1;
图5b为本发明实施例 一所述方法的应用场景2;
图6为本发明实施例二所述方法的简要流程图7为本发明实施例三所述装置的简要结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了 一种基于mac os操作系统上实现树状结构的方法及装置所述方法包括将要表达成树状结构的内容及对应的属性,对应的填入 创建的至少一个列表控件的各行中;所述属性包括该行或该行中的内容在所 述树状结构中所属的级别属性以及包括用于描述该行或该行中的内容所属级 别是否还具有下 一级别的子节点属性;
根据所述树状结构的内容及对应的属性,将所述至少一个列表控件的各 行生成树状结构的显示页面。
所述装置包括结构建立模块,用于将要表达成树状结构的内容及对应 的属性,对应的填入创建的至少一个列表控件的各行中;所述属性包括该行 或该行中的内容在所述树状结构中所属的级别属性以及包括用于描述该行或 该行中的内容所属级别是否还具有下一级别的子节点属性;
结构生成模块,用于根据所述树状结构的内容及对应的属性,将所述至 少 一 个列表控件的各行生成树状结构的显示页面。
采用本发明所述的技术方案来实现树状结构,能够解决现有技术中基于 mac os操作系统的iphone平台上利用列表控件表示树状结构的复杂性,如图 la和图1b中示出,现有技术利用列表控件实现树状结构的界面示意图,因为 列表控件表达的是同 一级别信息的兄弟关系,所以图1 a中只能将同 一级别的 信息显示在同一窗口上,当需要获取leveM中C:中的内容列表,用户只能通过 切换窗口,到另一个窗口去获取具体内容,若这种用列表控件实现树状结构 的层次大于3后,用户就需要不断花费时间进行窗口的切换,才能获取信息, 这种方式导致了用户操作过程的繁瑣,降低了用户体验。
图2中示出,采用本发明所述技术方案表达树状结构的应用场景图,可以 看出在图2中,同一界面上能够显示出树状结构的列表信息,因为对列表控件 中每行内容设置了属性,用户可以随意的通过点击设置的所述属性来获取相 关信息,不必在重复的切换窗口,提高了用户体验。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。实施例一
以图3中所述的树状结构为例来说明本发明所述技术方案。 本发明提供了一种基于mac os操作系统上实现树状结构的方法,所述方 法包括
将要表达成树状结构的内容及对应的属性,对应的填入创建的至少 一个 列表控件的各行中;所述属性包括该行或该行中的内容在所述树状结构中所 属的级别属性以及包括用于描述该行或该行中的内容所属级别是否还具有下 一级别的子节点属性;
根据所述树状结构的内容及属性,将所述至少 一 个列表控件的各行生成 树状结构的显示页面。
结合图4,具体步骤可以如下
步骤S101:将要表达成树状结构的内容按照级别进行分类;
本发明实施例中要表达成树状结构的内容不限于如图3中所示的内容,还
可以为基于mac os操作系统的移动终端上包含的各控件名称或信息类别等。
将图3中示出的内容按照级别分类后的结果为 最高级(level = 0)包括车;
其次(level = 1 )为leve卜O的下一级别,包括^/L动车和非^L动车; 第三级(level = 2)为leve卜1的一下级别,包括火车、货车、小轿
车、摩托车、拖拉机、越野车和赛车,属于leve卜1中的机动车类。
将要表达成树状结构的内容可以按照内容的级别、功能、类型、特点等
方式进行分类,在此不作特别限定。
步骤S102:创建至少一个内容为空的列表控件;根据分类后的内容,计
算确定所述列表控件的行数;
本实施例中创建列表控件的方法与现有"f支术相似,在此不作限定。 根据上述步骤S101分类获得的内容,确定所述列表控件的行数应该设置为10行,每行分别对应不同的分类内容,所述列表控件中每行的内容与级别
可以是一对一的关系或者是一对多的关系;
步骤S103:针对所述列表控件的每行分别增设所述属性;所述属性可以 包括该行在所述树状结构中所属的级别属性(level)以及包括用于描述该行 所属级别是否还具有下一级别的子节点属性(havechlidren );
当该行所属级别具有下一级别时,所述属性还包括用于表示是否要将所 述下一级别的行或内容处于展开或者关闭的扩展属性(expand),以对下一 级级别的行或该行中的内容进行显示或隐藏。
对所述列表控件中各行的内容增设了以上三个属性后可以这样去描述每 一4亍的内容(level, havechildren, expand, 图文内容)。
本发明实施例中分别对所述列表控件中的10行设置属性;设置的具体形 式为
第1行的级别level = 0, havechildren为TRUE, expand为TRUE; 第2行的级别leveN 1, havechildren为TRUE, expand为TRUE; 第3-9行的级别leve卜2, havechildren为FALSE, expand不设置(因为
此节点不具有下一级别);
第10行级别level = 1, havechildren为TRUE, expand为FALSE;
expand属性是可以任意设置的,需要将下 一级别的行或内容进行显示 时,将expand属性设置为TRUE,不需要显示时设置为FALSE。本实施例是 参照图3中所示内容进行绘制树状结构,所以将第10行的expand属性设置为 FALSE,用于表示虽然第10行具有下一级别的行或内容,但可以将第10行的 下一级别的行或该行中的内容隐藏;(非机动车具有下一级节点,且包括自 行车、黄包车和电瓶车)。
步骤S104:将所述内容及对应的属性,对应的填入列表控件的各行中;
本发明实施例中将对应的车辆信息填入设置好的列表控件中的10行中;由于在填入对应的内容之前,已经将该列表控件的各行分别设置了所述属
性。所以,第1行可以表示为(level = 0, havechildren = TRUE, expand-TRUE,该行对应的内容);
只于应的》真入分类内容后,第14亍可以表示为(level = 0, havechildren = TRUE, expand = TRUE,车);
以次类推,第2行可以表示为(level = 1 , havechildren = TRUE, expand =TRUE,机动车);
第3行可以表示为(level = 2, havechildren = FALSE, expand不设置, 火车);
第4行可以表示为(level - 2, havechildren = FALSE, expand不设置,
货车);
第5行可以表示为(level = 2, havechildren = FALSE, expand不设置,
小轿车);
第6行可以表示为(level = 2, havechildren = FALSE, expand不设置, 摩托车);
第7行可以表示为(level = 2, havechildren = FALSE, expand不设置,
拖拉机);
第8行可以表示为(level = 2, havechildren = FALSE, expand不设置,
越野车);
第9行可以表示为(level = 2, havechildren = FALSE, expand不设置,
赛车);
第10行可以表示为(level = 1 , havechildren = TRUE , expand = FALSE,非机动车);
步骤S105:根据所述树状结构的内容及属性,将所述至少一个列表控件 的各行生成树状结构的显示页面。具体过程包括
才艮据所述属性的级别属性,确定该行起始位置缩进的大小;根据所述属性中的子节点属性,确定显示用于表示该行是否具有下一级
别的标识;可以通过标识"+" 表示该行具有下一级别,标识"-"表示该
行不具有下一级别;
对于具有所述下一级别的行或该行中的内容,根据所述属性中的扩展属
性,确定是否显示所述下一级别的行或该行中的内容。可以通过标识"+,,或
标识"-,,来标识所述下一级别的行或该行中的内容处于展开或者隐藏状态。
本实施例中,根据所述属性中的级别属性,确定该行起始位置缩进的大小,例如第1行为最高等级0缩进1个字符;第2行为等级1缩进2个字符;第3-9行为等级2缩进3个字符,第10行为等级1缩进2个字符,用来表示所述树状结构;
图5a中示出通过设置havechildren = FALSE来将机动车所在行的下一级别的内容隐藏起来;同时示出,通过设置havechildrer^TRUE,来将非机动车所在行的下一级级别的内容显示出来。
图5b中所示,如果按照如图所示的将机动车和非机动车下一级别的内容隐藏起来,可以通过设置属性havechildren = FALSE来隐藏机动车和非机动车这两个内容所在行的下一级级别的内容。
所以通过对所述列表控件中每行进行属性设置,实现了用所述列表控件表示树状结构的目的,并且通过将信息在同一界面进行显示,使用户避免了花费时间来切换窗口。
为了说明本发明所述技术方案能够灵活应用,下面通过实施例二来进行说明。
实施例二同样采用与实施例 一 中图3中的实例,其中步骤S201与步骤S 101相同,步骤S202与步骤S102相同;区别在于实施例一是在将内容填入所述列表控件之前,将所述列表控件每行进行属性设定,然后通过对应的填入内容来实现树状结构;实施例二是将要表达成树状结构的内容先分别填入所述列表控件的各行中,再对所述内容分别设置所述属性。如图6所示,下面对实施例二的步骤进行具体说明。
行中;
步骤S204:针对填入各行中的所述内容分别增设所述属性,用于表示所述内容的树状结构;
实施例二中,将所述内容分别填入所述列表控件的每行后,对每行中的内容进行属性设定,也可以通过这个形式(level, havechildren, expand,图文内容)来描述该行的内容及属性;
例如将第1行的内容可以描述为(level = 0, havechildren = TRUE,expand = TRUE,车);
第2行的内容描述为(level = 1, havechildren = TRUE, expand =TRUE,机动车);
第3行的内容描述为(level = 2, havechildren = FALSE, expand不设
置,火车);expand不设置的理由同实施例一,不作赘述。以次类推;
第10行的内容描述为(level = 1, havechildren = FALSE, expand不=
FALSE,非机动车);
步骤S205与实施例一中所述步骤S105相同,不作赘述。通过实施例一和实施例二可以看出,本发明一种基于mac os操作系统上
实现树状结构的方法,通过对所述列表控件中内容增设属性,实现了利用现有的列表控件将信息表示成树状结构,简化了浏览程序执行的步骤,减轻了操作系统的负担,并且在用户体验方面,用户不必多次重复的切换窗口获取浏览信息,提高了用户体验。
实施例三
如图7所示,本发明还提供了一种基于mac os操作系统上实现树状结构的装置,所述装置包括
结构建立模块S11,用于将要表达成树状结构的内容及对应的属性,对应
的填入创建的至少一个列表控件的各行中;所述属性包括该行或该行中的内
容在所述树状结构中所属的级别属性以及包括用于描述该行或该行中的内容
所属级别是否还具有下 一级别的子节点属性;
结构生成模块S22,用于根据所述树状结构的内容及对应的属性,将所述至少 一个列表控件的各行生成树状结构的显示页面。
具体地,所述结构建立模块S11具体包括
内容分类单元S111,用于将所要表达成所述树状结构的内容进行分类;
列表控件创建单元S112,用于创建至少一个内容为空的列表控件,并根据所述内容分类单元分类后的内容计算确定所述列表控件的行数;
属性设置单元S113,用于针对所述列表控件创建单元创建的列表控件中的每行分别增设所述属性,并将所述分类后的内容及对应的属性分别填入所述列表控件的各行中;或者,用于将要表达成树状结构的所述内容分别填入所述列表控件的各行后,针对填入各行中的所述内容分别增设所述属性,用于表示所述内容的树状结构。
具体地,所述属性设置单元S113,还用于当该行或该行中的内容所属级别还具有下一级别的内容时,设置的属性还包括是否要将所述下一级别的行或内容处于展开或者关闭的扩展属性。
具体地,所述结构生成模块S22具体包括级别显示单元S221,用于根据所述属性中的级别属性,确定该行或该行
中的内容起始位置缩进的大小;
子节点显示单元S222,用于根据所述属性中的子节点属性,确定显示用于表示该行或该行中的内容是否具有下一级别的标识。
具体地,所述结构生成^^莫块具体还包括
展开状态显示单元S223,用于在所述子节点显示单元显示该行或该行中的内容具有下一级别的标识后,根据所述属性中的扩展属性,确定是否显示所述下一级别的行或该行中的内容。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-only Memory, ROM)或F逭才几存^f诸i己忆体(Random Access Memory,RAM )等。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1、一种基于mac os操作系统上实现树状结构的方法,其特征在于,所述方法包括将要表达成树状结构的内容及对应的属性,对应的填入创建的至少一个列表控件的各行中;所述属性包括该行或该行中的内容在所述树状结构中所属的级别属性以及包括用于描述该行或该行中的内容所属级别是否还具有下一级别的子节点属性;根据所述树状结构的内容及对应的属性,将所述至少一列表控件的各行生成树状结构的显示页面。
2、 根据权利要求1所述的方法,其特征在于,将要表达成树状结构的内 容及对应的属性,对应的填入创建的至少一个列表控件的各行中,具体过程 包括创建至少 一个内容为空的列表控件;将要表达成所述树状结构的内容分类后,根据分类后的内容计算确定所 述列表控件的行数;针对所述列表控件的每行分别增设所述属性,将所述分类后的内容及对 应的属性分别填入所述列表控件的各行中;或者,将要表达成树状结构的所 述内容分别填入所述列表控件的各行后,针对填入各行中的所述内容分别增 设所述属性,用于表示所述内容的树状结构。
3、 根据权利要求2所述的方法,其特征在于,所述方法还包括 当该行或该行中的内容所属级别还具有下一级别时,所述属性还包括用于表示是否要将所述下一级别的行或内容处于展开或者关闭的扩展属性。
4、 根据权利要求3所述的方法,其特征在于,根据所述树状结构的内容及属性,将所述至少一个列表控件的各行生成树状结构的显示页面,具体过程包括根据所述属性中的级别属性,确定该行或该行中的内容起始位置缩进的 大小;根据所述属性中的子节点属性,确定显示用于表示该行或该行中的内容 是否具有下 一 级别的标识。
5、 根据权利要求4所述的方法,其特征在于,所述方法还包括 对于具有所述下一级别的行或该行中的内容,根据所述属性中的扩展属性,确定是否显示所述下一级别的行或该行中的内容。
6、 一种基于mac os操作系统上实现树状结构的装置,其特征在于,所述 装置包括结构建立模块,用于将要表达成树状结构的内容及对应的属性,对应的 填入创建的至少 一个列表控件的各行中;所述属性包括该行或该行中的内容 在所述树状结构中所属的级别属性以及包括用于描述该行或该fl"中的内容所 属级别是否还具有下一级别的子节点属性;结构生成模块,用于根据所述树状结构的内容及对应的属性,将所述至 少 一 个列表控件的各行生成树状结构的显示页面。
7、 根据权利要求6所述的装置,其特征在于,所述结构建立模块具体包括内容分类单元,用于将要表达成所述树状结构的内容进行分类; 列表控件创建单元,用于创建至少一个内容为空的列表控件,并根据所述内容分类单元分类后的内容计算确定所述列表控件的行数;属性设置单元,用于针对所述列表控件创建单元创建的列表控件中的每行分别增设所述属性,并将所述分类后的内容及对应的属性分别填入所述列列表控件的各行后,针对填入各行中的所述内容分别增设所述属性,用于表 示所述内容的树状结构。
8、 根据权利要求7所述的装置,其特征在于,所述属性设置单元,还用 于当该行或该行中的内容所属级别还具有下一级别的内容时,设置的属性还 包括是否要将所述下一级别的行或内容处于展开或者关闭的扩展属性。
9、 根据权利要求8所述的装置,其特征在于,所述结构生成模块具体包括级别显示单元,用于根据所述属性中的级别属性,确定该行或该行中的 内容起始位置缩进的大小;子节点显示单元,用于根据所述属性中的子节点属性,确定显示用于表 示该行或该行中的内容是否具有下一级别的标识。
10、 根据权利要求9所述的装置,其特征在于,所述结构生成模块具体还 包括展开状态显示单元,用于在所述子节点显示单元显示该行或该行中的内 容具有下一级别的标识后,根据所述属性中的扩展属性,确定是否显示所述 下一级别的行或该行中的内容。
全文摘要
本发明公开了一种基于mac os操作系统上实现树状结构的方法和装置,所述方法包括将要表达成树状结构的内容及对应的属性,对应的填入创建的至少一个列表控件的各行中;所述属性包括该行或该行中的内容在所述树状结构中所属的级别属性以及包括用于描述该行或该行中的内容所属级别是否还具有下一级别的子节点属性。所述装置包括结构建立模块和结构生成模块。采用本发明所述的技术方案,能够在在基于mac os操作系统的平台上利用现有的列表控件,实现多层次树状结构信息的表达,简化了程序的操作过程,并且在操作过程中用户不必过多的切换窗口,提高了用户体验。
文档编号G06F9/44GK101556539SQ200910081158
公开日2009年10月14日 申请日期2009年4月3日 优先权日2009年4月3日
发明者冰 梁, 饶超勋 申请人:腾讯科技(北京)有限公司