BBANavigationBar.h
3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//
// BBANavigationBar.h
// BaiduBoxApp
//
// Created by gutiefeng on 13-11-19.
// Copyright (c) 2013年 Baidu. All rights reserved.
//
#import <UIKit/UIKit.h>
// 导航条按钮的种类
typedef enum _NavigationBarButtonItemType
{
ENavigationBarButtonItemTypeDefault, // 正常按钮
ENavigationBarButtonItemTypeBack, // 文字和返回箭头同时显示的按钮
ENavigationBarButtonItemTypeOnlyBack, // 只显示返回箭头的按钮
ENavigationBarButtonItemTypeBackAndClose//显示返回箭头和关闭
}TNavigationBarButtonItemType;
// @class - BBANavigationBarButtonItem
// @brief - 自定义导航条,实现可灵活指定颜色的毛玻璃效果
@interface BBANavigationBar : UINavigationBar
- (void)setBackgroundWithDefaultColor; // 以默认设置设定背景色
+ (UIImage*)defaultBackgroundImage;
- (void)setNaviBackgroundColorClear; //设置导航栏背景透明
- (void)hiddenNavigationBarUnderLine; // 隐藏bar底部线
@end
// @class - BBANavigationBarButtonItem
// @brief - 导航条按钮
@interface BBANavigationBarButtonItem : NSObject
// 类型
@property (nonatomic,assign) TNavigationBarButtonItemType itemType;
// 按钮元素
@property (nonatomic,strong) UIButton *button;
//left bar item
@property (nonatomic, strong)UIView *backView;
//
// 标题
@property (nonatomic,strong) NSString *title;
// 字体
@property (nonatomic,strong) UIFont *font;
// 颜色
@property (nonatomic,strong) UIColor *normalColor;
@property (nonatomic,strong) UIColor *highlightedColor;
@property (nonatomic,strong) UIColor *disabledColor;
- (instancetype)initWithType:(TNavigationBarButtonItemType)itemType
target:(id)target
action:(SEL)action
title:(NSString *)title
contentHorizontalalignment:(UIControlContentHorizontalAlignment)horizontalAlignment;
- (instancetype)initWithExtraButton:(id)target
backAction:(SEL)backAction
backTitle:(NSString*)backTitle
extraAction:(SEL)extraAction
extraTitle:(NSString*)extraTitle
contentHorizontalalignment:(UIControlContentHorizontalAlignment)horizontalAlignment
isLightTitle:(BOOL)isLightTitle;
- (void)setTarget:(id)target withAction:(SEL)action;
@end
@interface UINavigationItem(CustomNavigationBarButtonItem)
- (void)setNewTitle:(NSString *)title;
- (void)bba_setLeftItemWithType:(TNavigationBarButtonItemType)itemType
target:(id)target
action:(SEL)action
title:(NSString *)title;
- (void)setLeftItemWithButtonItem:(BBANavigationBarButtonItem *)item;
- (void)setDefaultLeftItem:(id)target
action:(SEL)action;
/*!
* @brief 为LeftItem设置一个除返回图标外的按钮操作(例如"关闭")
* @param target 处理"返回"及"额外"事件的目标对象
* @param backAction 返回的Action
* @param extraAction 额外按钮的Action
* @param extraTitle 额外按钮的title
*/
- (void)setLeftItemWithExtraButton:(id)target
backAction:(SEL)backAction
backTitle:(NSString*)backTitle
extraAction:(SEL)extraAction
extraTitle:(NSString*)extraTitle
isLightTitle:(BOOL)isLightTitle;
- (UIButton *)setRightItemWithTarget:(id)target
action:(SEL)action
title:(NSString *)title;
- (void)setRightItemWithButtonItem:(BBANavigationBarButtonItem *)item;
@end