自定义系统导航栏UINavigationBarController。

来源:互联网 发布:淘宝达人怎么登录 编辑:程序博客网 时间:2024/05/21 14:03

自定义导航栏样式,效果。

很多时候,我们的App需要其他不同效果的导航栏,不再是简单的用系统的。比如 一些需要透明的,页面滚动之后再显示出来,而且显示的效果还有多种。 还有些App的导航栏是多种颜色的变化,不再是统一风格的。  下面将附上一些关键类及代码, 最后附上Demo,积分不够的私我~~

Demo中,关键类及一些依赖。

关键类:



说明:

WBBaseVC 是基类, WBTranslucentNavigationBarVC 是透明基类, WBOpaqueNavigationBarVC 是不透明基类。

在AppDelegate的 didFinishLaunchingWithOptions 里设置全局统一的样式, 调用 [self setupAppearance];

#pragma mark - UIAppearance

- (void)setupAppearance {

[[UITableView appearance] setSeparatorColor:COMMON_SEPARATOR_COLOR];
[[UINavigationBar appearance] setBarTintColor:COMMON_MAIN_COLOR];
[[UINavigationBar appearance] setTintColor:COMMON_WHITE_COLOR];
[[UINavigationBar appearance] setTitleTextAttributes:@{
NSForegroundColorAttributeName : COMMON_WHITE_COLOR
}];
}

设置之后, 之后创建的所有 UIViewController只需要继承与 WBTranslucentNavigationBarVC 或者 WBOpaqueNavigationBarVC。
如果继承于 WBTranslucentNavigationBarVC, 导航栏将透明,继承于 WBOpaqueNavigationBarVC,导航栏将是全局统一的样色 (就是setupAppearance方法里的)。


接口说明:




和使用系统的 UINavigationBar一样,可以设置title,leftBarButton ,rightBarButton,也可以自定义TitleView。
改变导航栏样式,在适当的时机,调用 setupBarViewBackColor 或者 setupBarViewBackColor: alpha: 可以有不同的效果,具体Demo。
以及提供了可读的  navigationBar 属性。


效果:

    




Demo下载地址 :

点击此处下载Demo






1 0
原创粉丝点击