BBANavigationBar.h 3.52 KB
//
//  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