中文介绍
MLNavigationBarTransition截图
介绍
灵感来自 KMNavigationBarTransition。首先,声明并感谢。但由于个人细节无法满足个人喜好,以完全不同的激进方式重新造轮子。
- 仅支持 iOS7+。
- 如果两个页面有不同的导航栏背景效果,会出现一个不同于官方的叠加效果。
- 如果出现叠加效果或导航栏的
alpha
小于1.0f
,阴影边框将肯定在中间显示。无论导航栏的translucent
是否为YES
。 - 如果两个页面的导航栏背景效果完全相同,将出现官方效果。
- 如果两个页面的返回按钮的
tintColor
不同,将出现一个不似官方的淡入效果。 - 修复了当两个页面在 iOS 8.2 或以下版本上的
barTintColor
不同时导致闪烁的 bug。
添加提示
- 请勿将
navigationBarHidden
设置为YES
(存在BUG)。若要隐藏导航栏,请使用self.navigationBar.ml_backgroundAlpha = 0.0f;
- 若要隐藏导航栏底部阴影,请使用
self.navigationController.navigationBar.ml_backgroundShadowView.hidden = YES
- 尽量将
translucent
保持为YES
,因为若为NO
,则导航器中页面的头部将保持在导航条下方,这样若对导航条背景设置透明度,则会透出下面的view,从而产生异常效果。
简介
我一直想做一个类似微信转场效果的导航条库,并且苦于SDK里navigationBarHidden
为YES
时的BUG无法得到好的解决。在发现了KMNavigationBarTransition之后获得灵感,首先对此表示感谢,但是由于一些细节无法满足个人喜好,就采用了完全不同的、较为暴力的方式重新造了一个轮子。
- 只支持iOS7+
- 如果两个页面的导航条背景效果不同,在转场时将会出现导航条叠加的效果。(即使只有底部阴影条显示透明度不同这种细节,也被视为不同)
- 如果一个叠加效果显示了或者导航条背景有透明度,中间必定会显示阴影条,无论导航条的
translucent
是否为YES
。 - 如果两个页面的导航条背景效果完全相同,使用原生转场效果。
- 如果两个页面的导航条返回按钮的
tintColor
不同,转场时会有一个过渡效果,不会像原生那样立即改变为目的tintColor
。 - 在iOS 8.2或以下系统,如果两个页面的
barTintColor
不同后会出现闪烁的BUG已被修复。 - 对子页面的
view
没有侵入。
若干提示
- 请勿将
navigationBarHidden
设置为YES
,若要隐藏导航条,请使用self.navigationBar.ml_backgroundAlpha = 0.0f;
- 若要隐藏导航条底部阴影条,请使用
self.navigationController.navigationBar.ml_backgroundShadowView.hidden = YES
- 尽量让
translucent
保持为YES
,因为它若为NO
,则导航器中的页面的头部会保持在导航条之下,这样的话,若对导航条背景设置透明度,就会透出下面的view,产生异常效果。