iOS开发tips-UINavigationBar的切换

本文探讨了在iOS开发中如何处理导航栏在不同控制器间的切换,特别是从透明到不透明的过渡效果。介绍了三种方法:原始方式、方案1(隐藏并自定义导航栏)和方案2(仅隐藏背景)。方案2被认为是较为完美的解决方案,可以实现平滑的动画效果。文章还提及全屏返回手势的实现,并推荐了FDFullscreenPopGesture库。
摘要由CSDN通过智能技术生成

概述

在iOS系统中,如果控制器是以push方式进行管理的话,那么事实上多个控制器是共享的同一个导航栏。当然iOS系统的设计无可厚非,但是国内的应用经常会遇到很多个性的设计,就比如说A push到 B,A可能有导航栏,但是B控制器要求导航栏是透明的,这样一来A和B由于共用同一个导航栏就会让整个切换操作不易管理,何况从iOS 7开始不仅仅是点击返回按钮瞬间返回A那么简单,还要支持通过手势操作从B缓慢返回到A的导航栏渐变效果。本文就简单看一下如何能够更加合理的设计导航栏切换的效果以避免开发中由于导航栏管理不善而造成管理混乱的状况。

导航栏

在开始今天的话题之前,先看一下关于UINavigationBar的一些常见设计,要想清楚的了解导航栏的切换,弄清UINavigationBar的一些常用设置是必不可少的。简单起见,这里仅仅列出具体设置方式,不再一一赘述其细节:

  • barbuttonitem颜色设置:navigationBar.tintColor

这种方式包括push中的返回按钮,不过返回按钮可以通过自定义图片达到调整颜色效果navigationBar.backIndicatorImagenavigationBar.backIndicatorTransitionMaskImage
此外,注意字体大小等则必须通过UIBarButtonItem的setTitleTextAttributes设置,或者干脆自定义customView

  • NavigationBar title颜色设置:navigationBar.titleTextAttributes

注意:如果个性的标题栏,例如背景图则可以直接设置navigationItem.titleView)

  • 返回按钮移除标题:backBarButtonItem.setBackButtonTitlePositionAdjustment将标题移除屏幕外

  • 导航栏颜色设置:navigationBar.barTintColor

注意:也可以使用navigationBar.setBackgroundImage方法指定一个不同颜色的图片修改导航栏背景色。

另外,navigationBar.barStyle是对于导航栏整体风格的设置,默认为default(白色背景、黑色文字、状态栏文字也是黑色),你可以设置成black(黑色背景、白色文字,状态栏文字也是白色)。也就是说它不仅影响到导航栏背景色和标题颜色等,也影响状态栏风格。不过当这个设置和上面的设置发生冲突时,会以上面的独立设置为准。

isTranslucent是另一个导航栏常用属性,从iOS 7开始加入,默认为true代表导航栏半透明。如果通过navigationBar.setBackgroundImage来修改导航栏背景色,导航isTranslucent=true时即使图片颜色不透明那么系统也会修改图片的alpha达到半透明效果(这种情况_UIBarBackground透明,修改图片alpha。但

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值