IOS导航控制器页面平滑过渡的方法、装置和存储介质与流程

文档序号:14036333阅读:155来源:国知局
IOS导航控制器页面平滑过渡的方法、装置和存储介质与流程

本发明涉及触控领域,尤其涉及一种ios导航控制器页面平滑过渡的方法、装置和存储介质。



背景技术:

在ios操作系统原生的框架下,导航条uinavigationbar是一个特殊的控件,它是导航控制器uinavigationcontroller下的一个子视图,并且其图层高于该导航控制器下的子控制器的视图。目前导航控制器的实例方法instancemethod中的压栈式跳转方法(pushviewcontroller:animated)在跳转过程中上面的导航控制器一直是显示状态,并且该方法无法做到从一个有导航条的控制器页面平滑地过渡到没有导航条的控制器页面,也无法做到从一个没有导航条的控制器页面平滑地过渡到有导航条的控制器页面。要么就是两边都有导航条,要么就是两边都没有导航条,故而用户在使用ios操作系统相关的设备比如苹果手机或平板电脑等,无法实现上述操作,造成用户体验不佳。

而目前程序员针对上述问题比较流行的编程方式为:两边都没有原生导航条,然后自己添加了一个自己制作的导航条,该方法一般都是继承于界面视图uiview的类;但是这种方式,程序员自己添加的非原生导航控制器无法完成原生导航条uinavigationbar在跳转的动画中对其上面的子视图的动画效果,造成动画丢失的现象。



技术实现要素:

为解决上述技术问题,本发明提供一种ios导航控制器页面平滑过渡的方法、装置和存储介质,所述方法包括:

响应用户对当前屏幕页面的滑动操作,根据所述滑动操作对应的方向生成的页面切换指令;

在当前屏幕页面为第一导航控制器页面时,根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面,所述第一导航控制器页面与所述第二导航控制器页面之中至少有一个导航控制器页面存在原生导航条。

优选地,所述第二导航控制器页面包括返回控件;

相应地,所述根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面之后,所述方法还包括:

响应用户对所述第二导航控制器页面中的返回控件的按压操作,根据所述按压操作生成返回按压指令;

根据所述返回按压指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到所述第一导航控制器页面。

优选地,所述根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面之后,所述方法还包括:

响应用户对所述当前屏幕页面的屏幕边缘返回手势;

根据所述屏幕边缘返回手势生成返回指令;

根据所述返回指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到第一导航控制器页面。

优选地,所述响应用户对所述当前屏幕页面的屏幕边缘返回手势,具体包括:

在检测到存在用户的屏幕边缘返回手势时,检测所述第二导航控制器页面是否存在全屏左右滚动子视图,若存在,则禁止所述全屏左右滚动子视图被响应,并响应所述屏幕边缘返回手势。

优选地,所述第一导航控制器页面与所述第二导航控制器页面之中只有一个导航控制器页面存在原生导航条,

相应地,所述ios导航控制器页面平滑过渡的方法还包括:

在当前屏幕页面由所述第一导航控制器页面过渡到所述第二导航控制器页面时,或在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述原生导航条对应的原生导航条动画进行展示。

优选地,所述第一导航控制器页面的原生导航条具有第一原生导航条动画,所述第二导航控制器页面的原生导航条具有第二原生导航条动画;

相应地,所述ios导航控制器页面平滑过渡的方法还包括:

在当前屏幕页面由所述第一导航控制器页面过渡到第二导航控制器页面时,对所述第二原生导航条动画进行展示;

在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述第一原生导航条动画进行展示。

此外,为实现上述目的,本发明还提供一种ios导航控制器页面平滑过渡装置,所述装置包括:触控显示屏、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的ios导航控制器页面平滑过渡程序,所述ios导航控制器页面平滑过渡程序配置为实现如上所述的ios导航控制器页面平滑过渡方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有ios导航控制器页面平滑过渡程序,所述ios导航控制器页面平滑过渡程序被处理器执行时实现如上所述ios导航控制器页面平滑过渡方法的步骤。

本发明能够实现以下有益效果:有导航条的导航控制器页面和没有导航条的导航控制器页面之间可以平滑过渡;且当相互切换过渡的导航控制器页面之间都存在原生导航条时,各导航控制器页面的原生导航条的动画效果不会丢失,手机的处理器在检测到存在用户的屏幕边缘返回手势时,会检测所述第二导航控制器页面是否存在类似全屏左右滚动子视图,若存在,则禁止所述全屏左右滚动子视图被响应,并响应所述屏幕边缘返回手势,提高了用户使用基于ios操作系统的触屏装置时的体验。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的一种ios导航控制器页面平滑过渡装置的结构示意图;

图2为本发明一种ios导航控制器页面平滑过渡的方法第一实施例的流程示意图;

图3为为本发明一种ios导航控制器页面平滑过渡的方法第二实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的ios导航控制器页面平滑过渡装置结构示意图。

如图1所示,所述ios导航控制器页面平滑过渡装置为基于ios操作系统的具有触控显示屏的装置,该装置可以手机或平板电脑。该装置可以包括:处理器1001,例如cpu,通信总线1002、触控显示屏1003,存储器1004。其中,通信总线1002用于实现这些组件之间的连接通信。触控显示屏1003可选的可以包括标准的有线接口、无线接口。存储器1004可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。

本领域技术人员可以理解,图1中示出的装置结构并不构成对ios导航控制器页面平滑过渡装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1004中可以包括ios操作系统以及ios导航控制器页面平滑过渡程序。

本实施例所述ios导航控制器页面平滑过渡装置通过处理器1001调用存储器1004中存储的ios导航控制器页面平滑过渡程序,并执行以下操作:

响应用户对当前屏幕页面的滑动操作,根据所述滑动操作对应的方向生成的页面切换指令;

在当前屏幕页面为第一导航控制器页面时,根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面,所述第一导航控制器页面与所述第二导航控制器页面之中至少有一个导航控制器页面存在原生导航条。

进一步地,处理器1001可以调用存储器1005中存储的ios导航控制器页面平滑过渡程序,还执行以下操作:

响应用户对所述第二导航控制器页面中的返回控件的按压操作,根据所述按压操作生成返回按压指令;

根据所述返回按压指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到所述第一导航控制器页面。

进一步地,处理器1001可以调用存储器1005中存储的ios导航控制器页面平滑过渡程序,还执行以下操作:

响应用户对所述当前屏幕页面的屏幕边缘返回手势;

根据所述屏幕边缘返回手势生成返回指令;

根据所述返回指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到第一导航控制器页面。

进一步地,处理器1001可以调用存储器1005中存储的ios导航控制器页面平滑过渡程序,还执行以下操作:

在检测到存在用户的屏幕边缘返回手势时,检测所述第二导航控制器页面是否存在全屏左右滚动子视图,若存在,则禁止所述全屏左右滚动子视图被响应,并响应所述屏幕边缘返回手势。

进一步地,处理器1001可以调用存储器1005中存储的ios导航控制器页面平滑过渡程序,还执行以下操作:

在当前屏幕页面由所述第一导航控制器页面过渡到所述第二导航控制器页面时,或在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述原生导航条对应的原生导航条动画进行展示。

进一步地,处理器1001可以调用存储器1005中存储的ios导航控制器页面平滑过渡程序,还执行以下操作:

在当前屏幕页面由所述第一导航控制器页面过渡到第二导航控制器页面时,对所述第二原生导航条动画进行展示;

在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述第一原生导航条动画进行展示。

本实施例可以实现以下有益效果:有导航条的导航控制器页面和没有导航条的导航控制器页面之间可以平滑过渡;且当相互切换过渡的导航控制器页面之间都存在原生导航条时,各导航控制器页面的原生导航条的动画效果不会丢失,手机的处理器在检测到存在用户的屏幕边缘返回手势时,会检测所述第二导航控制器页面是否存在类似全屏左右滚动子视图,若存在,则禁止所述全屏左右滚动子视图被响应,并响应所述屏幕边缘返回手势,提高了用户使用基于ios操作系统的触屏装置时的体验。

基于上述硬件结构,提出本发明一种ios导航控制器页面平滑过渡的方法实施例。

参照图2,图2为本发明一种ios导航控制器页面平滑过渡的方法第一实施例的流程示意图。

本实施例中,所述方法包括以下步骤:

s10:响应用户对当前屏幕页面的滑动操作,根据所述滑动操作对应的方向生成的页面切换指令;

需要说明的是,本实施例以基于ios操作系统的具有触控显示屏的装置的处理器作为执行主体进行说明,所述装置以基于ios操作系统的手机为例进行说明。

可理解的是,当用户对手机的当前屏幕页面进行滑动操作时,比如从做到右操作,手机的处理器会根据所述滑动操作对应的方向生成的页面切换指令;

s20:在当前屏幕页面为第一导航控制器页面时,根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面,所述第一导航控制器页面与所述第二导航控制器页面之中至少有一个导航控制器页面存在原生导航条。

可理解的是,在ios原生框架下,导航条uinavigationbar是导航控制器uinavigationcontroller下的一个子视图,导航条uinavigationbar是导航控制器uinavigationcontroller是一一对应的同步关系。导航条uinavigationbar可以设置动画效果。

如果所述第一导航控制器页面与所述第二导航控制器页面之中只有一个导航控制器页面存在原生导航条,则在当前屏幕页面由所述第一导航控制器页面过渡到所述第二导航控制器页面时,或在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述原生导航条对应的原生导航条动画进行展示。

对应地,如果所述第一导航控制器页面的原生导航条具有第一原生导航条动画,则在当前屏幕页面由所述第一导航控制器页面过渡到第二导航控制器页面时,对所述第二原生导航条动画进行展示;

在当前屏幕页面由所述第二导航控制器页面返回到所述第一导航控制器页面时,对所述第一原生导航条动画进行展示。

在具体实现中,本实施例通过界面视图控制控制器uiviewcontroller的分类和runtime运行时机制给导航控制器(uinavigationcontroller)添加一个nm_prefersnavigationbarhidden属性,所述nm_prefersnavigationbarhidden属性为布尔类型,表征为是否显示或隐藏该导航控制器所对应的导航条。控制器可以通过控制该属性来告知导航控制器是否需要显示或隐藏导航条,即在导航控制器初始化以及基于如用户的页面切换指令实现当前屏幕页面压栈跳转的时,通过判断要显示的导航控制器的属性nm_prefersnavigationbarhidden来显示或隐藏导航条。

本实施例能够实现有导航条的导航控制器页面和没有导航条的导航控制器页面之间的平滑过渡;且当相互切换过渡的导航控制器页面之间都存在原生导航条时,各导航控制器页面的原生导航条的动画效果不会丢失,提高了用户使用基于ios操作系统的触屏装置时的体验。

参照图3,图3为本发明一种ios导航控制器页面平滑过渡方法的第二实施例的流程示意图。基于上述ios导航控制器页面平滑过渡方法的第一实施例,所述第二导航控制器页面包括返回控件。

相应地,所述步骤s20中所述根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面之后,所述方法还包括:

s301:响应用户对所述第二导航控制器页面中的返回控件的按压操作,根据所述按压操作生成返回按压指令;

s302:根据所述返回按压指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到所述第一导航控制器页面。

可理解的是,uinavigationbar的功能类似于导航控制器中的栈,uinavigationcontroller管理的是控制器的栈,而uinavigationbar管理的是uibarbuttonitem(uibarbuttonitemm是一种特殊的控制器的返回按钮button),本实施例可通过uibarbuttonitem实现导航控制器页面中的返回控件。

进一步地,所述步骤s20中所述根据所述页面切换指令将当前屏幕页面由所述第一导航控制器页面平滑过渡到第二导航控制器页面之后,所述方法还包括:

s310:在检测到存在用户的屏幕边缘返回手势时,检测所述第二导航控制器页面是否存在全屏左右滚动子视图,若存在,则禁止所述全屏左右滚动子视图被响应,并响应所述屏幕边缘返回手势;

s320:根据所述屏幕边缘返回手势生成返回指令;

s330:根据所述返回指令将当前屏幕页面由所述第二导航控制器页面平滑过渡到第一导航控制器页面。

可理解的是,现有技术中程序员也可通过使用:

uinavigationcontroller+fdfullscreenpopgesture分类的方式解决具有导航条的导航控制器页面和没有导航条的导航控制器页面之间的页面切换,但是其自带的全屏返回手势在某些页面会导致手势指令的响应冲突,例如有全屏左右滚动子视图的图册类页面等,导致无法做到通过基于用户的手势做返回操作。

而本实施例中,手机的处理器在检测到存在用户的屏幕边缘返回手势时,会检测所述第二导航控制器页面是否存在全屏左右滚动子视图,当覆盖了全屏的左右方向的滚动图册上的手势与原生的屏幕边缘返回手势冲突时,可以让原生的屏幕边缘返回手势的优先响应,当所述原生的屏幕边缘返回手势被触发时,处理器会使前者(即当覆盖了全屏的左右方向的滚动图册上的手势)临时失效。

本实施的有益效果是:采用本实施例一种ios导航控制器页面平滑过渡方法实现具有导航条的导航控制器页面和没有导航条的导航控制器页面之间的平滑过渡的基础上,既支持按钮返回又支持原生的屏幕边缘返回手势,当出现类似覆盖了全屏的左右方向的滚动图册上的手势与屏幕边缘返回手势冲突时,可以让后者优先响应,进一步提高了用户的体验。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1