BBAPannelViewController.h
5.35 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//
// BBAPannelViewController.h
// BBAPods
//
// Created by liurui12 on 16/8/18.
// Copyright © 2016年 Baidu. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "BBAPannelAction.h"
#import "BBAGridPannelViewCell.h"
//#import "BBAshare.h"
//面板蒙层消失时间
#define kMenuPannelDismissDuration 0.16f
//面板生命周期的通知
#define BBAPannelViewWillAppear @"BBAPannelViewWillAppear"
#define BBAPannelViewWillDisappear @"BBAPannelViewWillDisappear"
/// didAppear didDisappear 通知V11.23后废弃,勿用
#define BBAPannelViewDidAppear @"BBAPannelViewDidAppear"
#define BBAPannelViewDidDisappear @"BBAPannelViewDidDisappear"
@protocol BBAGridPannelHeaderDataSource;
typedef void(^BBAPannelDismissBlock)(void);
@interface BBAPannelViewController : UIViewController
/*!
@property
@brief 面显示状态。
*/
@property (nonatomic) BOOL isShowing;
@property (nonatomic) BOOL isFontPannelShowing;
/*!
@property
@brief 关闭面板回调block
*/
@property (nonatomic, copy) void(^dismissBlock)(void);
@property (nonatomic, strong)BBAPannelAction *seletedPannelAction;
/*!
@brief 显示面板 整页滑动。
@param superView 父级视图
@param actions action数组
@param configData 包含contenInsets:pannel 父级遮罩insets等信息
@param headerDataSource 如果传入dataSource将显示header view
*/
- (void)presentView:(UIView *)superView
actions:(NSArray<BBAPannelAction *> *)actions
configData:(NSDictionary *)configData
headerDataSource:(id<BBAGridPannelHeaderDataSource>)headerDataSource;
- (void)presentView:(UIView *)superView
actions:(NSArray<BBAPannelAction *> *)actions
headerDataSource:(id<BBAGridPannelHeaderDataSource>)headerDataSource;
/*!
@brief 显示面板 分两行显示,单行滑动,
@param superView 父级视图
@param firstRowItems 第一行items数组 (此时如firstRowItems.count == 0, 则整页滑动)
@param secondRowItems 第二行items数组
@param configData 包含contenInsets:pannel 父级遮罩insets等信息
@param headerDataSource 如果传入dataSource将显示header view
*/
- (void)presentView:(UIView *)superView
firstRowItems:(NSArray<BBAPannelAction *> *)firstRowItems
secondRowItems:(NSArray<BBAPannelAction *> *)secondRowItems
configData:(NSDictionary *)configData
headerDataSource:(id<BBAGridPannelHeaderDataSource>)headerDataSource;
- (void)presentView:(UIView *)superView
firstRowItems:(NSArray<BBAPannelAction *> *)firstRowItems
secondRowItems:(NSArray<BBAPannelAction *> *)secondRowItems
headerDataSource:(id<BBAGridPannelHeaderDataSource>)headerDataSource;
- (BBAGridPannelViewCell *)cellForIdentifier:(NSString *)identifier;
/*!
@method
@brief 显示面板。
@param superView 父级视图
@param actions action数组
*/
- (void)presentView:(UIView *)superView actions:(NSArray<BBAPannelAction *> *)actions;
/*!
@method 传入二维数组菜单多行(暂时只支持两行)数据分别传入
@brief 显示面板。
@param superView 父级视图
@param rowsItems action二维数组
@param configData 包含contenInsets:pannel 父级遮罩insets等信息
@param headerDataSource 如果传入dataSource将显示header view
*/
- (void)presentView:(UIView *)superView
rowsItems:(NSArray<NSArray<BBAPannelAction *> *> *)rowsItems
configData:(NSDictionary *)configData
headerDataSource:(id<BBAGridPannelHeaderDataSource>)headerDataSource;
/*!
@method
@brief 关闭面板
@anim,coverAnim 是否播放动画
@completion, completion 动画完成回调
*/
- (void)dissmiss:(BOOL)anim coverViewAnim:(BOOL)coverAnim completion:(void (^)(void))completion;
/*!
@method
@brief 关闭字体选择面板
@anim 是否播放动画
*/
- (void)dissmissFontPannelView:(BOOL)anim;
/*!
@method
@brief 刷新面板
*/
-(void)reloadData;
/*!
@method
@brief 刷新面板元素
@param actions 数组,被传入的action 将被刷新
*/
-(void)reloadActions:(NSArray<BBAPannelAction *> *)actions;
/*!
* @brief 展示字体设置面板
*
* @param fontLevel 当前的字号(1/2/3/4),分别对应小、中、大、特大
* @param barStyle 适配当前底部导航的主题
* @param changedBlock 字体设置成功的回调
* @param dismissBlock 字体设置面板消失的回调
*
*/
- (void)showFontPannel:(NSString *)fontLevel
withToolbarStyle:(NSInteger)barStyle
changedBlock:(void (^)(NSString *fontLevel))changedBlock
dismissBlock:(void (^)(BOOL sizeChanged))dismissBlock;
- (void)showFontPannelInView:(UIView*)superView
fontLevel:(NSString*)fontLevel
toolbarStyle:(NSInteger)barStyle
changedBlock:(void (^)(NSString *fontLevel))changedBlock
dismissBlock:(void (^)(BOOL sizeChanged))dismissBlock;
/*!
* @brief 设置面板背景色
*
* @param bgColor 设置面板当前的背景色,若为nil,不更新背景色
*
*/
- (void)changePannelViewBGColor:(UIColor *)bgColor;
/*!
* @brief 设置面板取消按钮文字颜色
*
* @param textColor 设置取消按钮的文字颜色,若为nil,不更新文字颜色
* @param highTextColor 设置取消按钮选中的文字颜色,若为nil,不更新文字颜色
*
*/
- (void)changeCancelButtonTextColor:(UIColor *)textColor highTextColor:(UIColor *)highTextColor;
@end