CN111901370A - 基于协议自定义iOS导航栏样式的方法 - Google Patents
基于协议自定义iOS导航栏样式的方法 Download PDFInfo
- Publication number
- CN111901370A CN111901370A CN202010473981.7A CN202010473981A CN111901370A CN 111901370 A CN111901370 A CN 111901370A CN 202010473981 A CN202010473981 A CN 202010473981A CN 111901370 A CN111901370 A CN 111901370A
- Authority
- CN
- China
- Prior art keywords
- navigation bar
- protocol
- style
- customizing
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000007704 transition Effects 0.000 claims abstract description 31
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000009545 invasion Effects 0.000 abstract description 4
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明涉及APP开发领域,具体涉及一种工作量少、不会对已有项目入侵、利于第三方组件页面接入的基于协议自定义iOS导航栏样式的方法。本发明的基于协议自定义iOS导航栏样式的方法,首先声明自定义导航栏样式协议;页面控制器遵循自定义导航栏样式协议;自定义导航控制器,并重写系统转场方法;在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议并根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法。与现有技术相比,不需要在每个页面控制器中进行自定义导航栏,也不用对系统方法进行修改,也无需要求页面控制器必须继承于自定义的基类页面控制器,具有工作量少、不会对已有项目入侵、利于第三方组件页面接入的特点。
Description
技术领域
本发明涉及APP开发领域,具体涉及一种工作量少、不会对已有项目入侵、利于第三方组件页面接入的基于协议自定义iOS导航栏样式的方法。
背景技术
在iOS应用开发过程中,出于产品需求,页面间导航栏样式并不统一,其需要自定义的样式包括:导航栏背景色、是否隐藏导航栏、导航栏标题颜色、导航栏返回按钮样式等。例如:A页面导航栏背景色为红色,B页面导航栏背景色为白色,C页面没有导航栏。在A、B、C三个页面间切换时,为了保证每个页面导航栏样式独立,需要单独在A、B、C三个页面的生命周期方法(页面即将显示、页面即将消失)中各实现设置导航栏样式、取消导航栏样式的方法。另外在显示导航栏和隐藏导航栏的页面控制器之间切换时,需要单独进行判断,工作量大且不易维护。
现有技术中,目前主要使用三种方式来对应用顶部导航栏样式进行自定义
1.在每个页面的生命周期方法(页面即将显示、页面即将消失)中单独设置导航栏样式。这种方法的缺点是:需要在每个页面控制器中实现自定义导航栏样式的方法,工作量大,且当引入第三方组件时,在不修改第三方组件源码的情况下,无法自定义导航栏样式。
2.基于iOS运行时原理,对页面控制器的生命周期方法进行替换,并以分类的方式为系统页面控制器增加属性以实现自定义导航栏样式。这种方法的缺点是:基于运行时原理,会对系统方法进行修改,在接入已有项目时入侵性大,出现问题时不利于故障排查。
3.创建一个自定义的基类页面控制器,并在该基类页面控制器中提供导航栏样式定制的方法,其他页面控制器均继承自该基类页面控制器。这种方法的缺点是:要求所有页面控制器必须继承于自定义的基类页面控制器,当引入第三方组件时,不能保证第三方组件的页面控制器可以继承于自定义的页面控制器。
发明内容
针对现有技术中的缺陷,本发明提供一种工作量少、不会对已有项目入侵、利于第三方组件页面接入的基于协议自定义iOS导航栏样式的方法。
本发明采用的技术方案是:基于协议自定义iOS导航栏样式的方法,包括以下步骤:
a、声明自定义导航栏样式协议;
b、页面控制器遵循自定义导航栏样式协议;
c、自定义导航控制器,并重写系统转场方法;
d、在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议;
e、根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法;
f、结束。
为更好地实现本发明,所述的步骤a中,声明自定义导航栏样式协议时,同时提供需要自定义导航栏样式相关的属性。
为更好地实现本发明,所述的自定义导航栏样式相关的属性包括是否隐藏导航栏、导航栏背景色、导航栏背景图、导航栏标题颜色、导航栏返回按钮样式以及是否隐藏导航返回按钮。
为更好地实现本发明,所述的步骤b中,以分类方式遵守步骤a中所声明的自定义导航栏样式协议,以只读方式返回协议中约定的属性。
为更好地实现本发明,所述的步骤d中,若页面控制器遵守了自定义导航栏样式协议,设置协议对应的导航栏样式。
为更好地实现本发明,所述的步骤d中,若页面控制器没有遵守自定义导航栏样式协议,则设置导航栏样式为默认样式。
为更好地实现本发明,所述的步骤e中,设置完转场前后页面控制器导航栏样式后,完成转场动画方法,最终实现具有不同导航栏样式的页面控制器之间切换。
为更好地实现本发明,在所述的导航栏设置有方便页面控制器切换的切换按钮。
本发明的有益效果体现在:本发明的基于协议自定义iOS导航栏样式的方法,首先声明自定义导航栏样式协议;然后页面控制器遵循自定义导航栏样式协议;接着自定义导航控制器,并重写系统转场方法;在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议,并根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法。与现有技术相比,不需要在每个页面控制器中进行自定义导航栏,也不用对系统方法进行修改,也无需要求页面控制器必须继承于自定义的基类页面控制器,具有工作量少、不会对已有项目入侵、利于第三方组件页面接入的特点。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明的基于协议自定义iOS导航栏样式的方法的一种流程框图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
实施例1:
如图1所示,本发明的基于协议自定义iOS导航栏样式的方法,包括以下步骤:
a、声明自定义导航栏样式协议;
b、页面控制器遵循自定义导航栏样式协议;
c、自定义导航控制器,并重写系统转场方法;
d、在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议;
e、根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法;
f、结束。
本发明的基于协议自定义iOS导航栏样式的方法,首先声明自定义导航栏样式协议;然后页面控制器遵循自定义导航栏样式协议;接着自定义导航控制器,并重写系统转场方法;在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议,并根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法。与现有技术相比,不需要在每个页面控制器中进行自定义导航栏,也不用对系统方法进行修改,也无需要求页面控制器必须继承于自定义的基类页面控制器,具有工作量少、不会对已有项目入侵、利于第三方组件页面接入的特点。
实施例2:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤a中,声明自定义导航栏样式协议时,同时提供需要自定义导航栏样式相关的属性这些属性主要包括是否隐藏导航栏、导航栏背景色、导航栏背景图、导航栏标题颜色、导航栏返回按钮样式以及是否隐藏导航返回按钮。
实施例3:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤b中,以分类方式遵守步骤a中所声明的自定义导航栏样式协议,以只读方式返回协议中约定的属性。分类方式遵守是指分别对不同类别的部分分别遵守自定义导航栏样式协议,以只读方式返回协议中约定的属性可以避免属性变化,避免其他插件入侵。
实施例4:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤d中,在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议;若页面控制器遵守了自定义导航栏样式协议,设置协议对应的导航栏样式,若页面控制器没有遵守自定义导航栏样式协议,则设置导航栏样式为默认样式。
实施例5:
在上述实施例的基础上,为进一步更好地实施本发明,所述的步骤e中,设置完转场前后页面控制器导航栏样式后,完成转场动画方法,最终实现具有不同导航栏样式的页面控制器之间切换。进一步的,在所述的导航栏设置有方便页面控制器切换的切换按钮,需要切换时直接点击切换即可。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (8)
1.基于协议自定义iOS导航栏样式的方法,其特征在于包括以下步骤:
a、声明自定义导航栏样式协议;
b、页面控制器遵循自定义导航栏样式协议;
c、自定义导航控制器,并重写系统转场方法;
d、在导航控制器转场动画中判断页面控制器是否遵守自定义导航栏样式协议;
e、根据判断结果设置转场前后页面控制器导航栏样式,完成转场动画方法;
f、结束。
2.根据权利要求1所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的步骤a中,声明自定义导航栏样式协议时,同时提供需要自定义导航栏样式相关的属性。
3.根据权利要求2所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的自定义导航栏样式相关的属性包括是否隐藏导航栏、导航栏背景色、导航栏背景图、导航栏标题颜色、导航栏返回按钮样式以及是否隐藏导航返回按钮。
4.根据权利要求3所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的步骤b中,以分类方式遵守步骤a中所声明的自定义导航栏样式协议,以只读方式返回协议中约定的属性。
5.根据权利要求4所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的步骤d中,若页面控制器遵守了自定义导航栏样式协议,设置协议对应的导航栏样式。
6.根据权利要求4所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的步骤d中,若页面控制器没有遵守自定义导航栏样式协议,则设置导航栏样式为默认样式。
7.根据权利要求1所述的基于协议自定义iOS导航栏样式的方法,其特征在于:所述的步骤e中,设置完转场前后页面控制器导航栏样式后,完成转场动画方法,最终实现具有不同导航栏样式的页面控制器之间切换。
8.根据权利要求7所述的基于协议自定义iOS导航栏样式的方法,其特征在于:在所述的导航栏设置有方便页面控制器切换的切换按钮。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473981.7A CN111901370A (zh) | 2020-05-29 | 2020-05-29 | 基于协议自定义iOS导航栏样式的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473981.7A CN111901370A (zh) | 2020-05-29 | 2020-05-29 | 基于协议自定义iOS导航栏样式的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111901370A true CN111901370A (zh) | 2020-11-06 |
Family
ID=73206974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010473981.7A Pending CN111901370A (zh) | 2020-05-29 | 2020-05-29 | 基于协议自定义iOS导航栏样式的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901370A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144301A (zh) * | 2014-07-30 | 2014-11-12 | 厦门美图之家科技有限公司 | 一种基于混合模式转场特效的方法 |
CN107463367A (zh) * | 2017-06-22 | 2017-12-12 | 北京小度信息科技有限公司 | 转场动画实现方法及装置 |
CN107704154A (zh) * | 2017-10-19 | 2018-02-16 | 福建中金在线信息科技有限公司 | 导航栏过渡方法和系统 |
CN107832051A (zh) * | 2017-09-26 | 2018-03-23 | 五八有限公司 | 应用程序的页面导航处理方法及装置 |
CN108345480A (zh) * | 2017-01-23 | 2018-07-31 | 北京京东尚科信息技术有限公司 | 页面切换管理方法、装置和移动终端 |
CN108984245A (zh) * | 2018-06-20 | 2018-12-11 | 武汉斑马快跑科技有限公司 | 一种基于单一视图控制器的页面切换方法及系统 |
CN110968226A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 导航栏控制方法、装置、移动终端及存储介质 |
-
2020
- 2020-05-29 CN CN202010473981.7A patent/CN111901370A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104144301A (zh) * | 2014-07-30 | 2014-11-12 | 厦门美图之家科技有限公司 | 一种基于混合模式转场特效的方法 |
CN108345480A (zh) * | 2017-01-23 | 2018-07-31 | 北京京东尚科信息技术有限公司 | 页面切换管理方法、装置和移动终端 |
CN107463367A (zh) * | 2017-06-22 | 2017-12-12 | 北京小度信息科技有限公司 | 转场动画实现方法及装置 |
CN107832051A (zh) * | 2017-09-26 | 2018-03-23 | 五八有限公司 | 应用程序的页面导航处理方法及装置 |
CN107704154A (zh) * | 2017-10-19 | 2018-02-16 | 福建中金在线信息科技有限公司 | 导航栏过渡方法和系统 |
CN108984245A (zh) * | 2018-06-20 | 2018-12-11 | 武汉斑马快跑科技有限公司 | 一种基于单一视图控制器的页面切换方法及系统 |
CN110968226A (zh) * | 2018-09-30 | 2020-04-07 | 北京奇虎科技有限公司 | 导航栏控制方法、装置、移动终端及存储介质 |
Non-Patent Citations (5)
Title |
---|
HUANGBAOQIN: "IOS开发-自定义UInavigationbar样式", 《HTTPS://WWW.JIANSHU.COM/P/F7F48CCAB1D8》 * |
IIRONMAN一名普通的IOS开发者: ""UINavigationbar导航栏"", 《HTTPS://WWW.JIANSHU.COM/P/8258468DE629》 * |
IMKATA: ""IOS-uinavigationcontroller"", 《HTTPS://WWW.JIANSHU.COM/P/46CBA4030772》 * |
张华: ""IOS app中框架的搭建及Tabbar的自定义创建的分析"", 《长春工程学院学报自然科学版》 * |
明若晴空: ""Uinavigationbar"", 《HTTPS://WWW.JIANSHU.COM/P/89E78B306D52》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930810B2 (en) | User interface (UI) color scheme generation and management according to visual consistency of visual attributes in the color scheme | |
CN105511873A (zh) | 用户界面控件展示方法及装置 | |
JP2006172483A (ja) | 機能モジュールのユーザインタフェースのダイナミックコンフィギュレーション方法、コンピュータプログラム、コンピュータプログラムプロダクト、コンピュータシステムおよびユーザインタフェース | |
CN101374213A (zh) | 电视人机界面自定义的实现方法 | |
CN104268152A (zh) | 一种网页展现方法和装置 | |
CN108287718A (zh) | 基于游戏引擎的特效编辑方法及装置 | |
CN106610881B (zh) | 提取程序无响应发生时函数栈的提取方法和装置 | |
CN112130951A (zh) | 基于ai的rpa流程生成端的流程生成方法、设备及存储介质 | |
CN111191161B (zh) | 一种页面展示方法、存储介质、电子设备及系统 | |
CN111901370A (zh) | 基于协议自定义iOS导航栏样式的方法 | |
CN112069075B (zh) | 游戏角色的时装测试方法、装置和游戏客户端 | |
CN112328225A (zh) | 一种页面运行方法及其运行系统 | |
US20220121325A1 (en) | User interface customization per application | |
CN115562652B (zh) | 用于低代码开发平台的组件样式处理方法及系统 | |
CN108776601B (zh) | 安卓h5页面的加载方法、装置、设备及存储介质 | |
KR20180034356A (ko) | 사용자 설정에 의한 게임 캐릭터의 인공 지능을 구현하는 게임 시스템 및 방법 | |
CN109819329B (zh) | 一种窗口显示方法及智能电视 | |
CN114153442A (zh) | 基于可视化组件的大屏可视化页面配置方法和系统 | |
KR101622402B1 (ko) | 그래픽 기반의 hmi 화면 구성이 가능한 hmi 장치 및 그래픽 기반의 hmi 화면 구성 방법 | |
CN108319227A (zh) | 图形套料的数控程序生成方法、服务器及存储介质 | |
CN115145634A (zh) | 一种系统管理软件自适配方法、装置及介质 | |
CN113467876A (zh) | 页面组件的生成方法及装置 | |
US20020073412A1 (en) | Parameter tuner system | |
JP3138430B2 (ja) | ユーザインタフェース画面作成支援装置 | |
JPH1069379A (ja) | 図的プログラミング方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201106 |
|
RJ01 | Rejection of invention patent application after publication |