BBACommonPopupMenuController.h
3.7 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
//
// BBACommonPopupMenuController.h
// BBAUIKit
//
// Created by Ning,Liujie on 2020/7/15.
// Copyright © 2020 Baidu. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BBACommonPopupMenuItem.h"
#import "BBACommonPopupMenuDefine.h"
typedef NS_ENUM(NSInteger, BBACommonPopupMenuShowType) {
BBACommonPopupMenuShowTypeListView, // 列表样式
BBACommonPopupMenuShowTypeCustomView // 自定义View
};
typedef void (^popupMenuHide)(void);
@class BDPWindow;
NS_ASSUME_NONNULL_BEGIN
@interface BBACommonPopupMenuController : NSObject
/// 展示的menu 的样式
@property (nonatomic, assign) BBACommonPopupMenuShowType menuShowType;
/// 菜单隐藏
@property (nonatomic, copy) popupMenuHide hideCallBack;
@property (nonatomic, weak) BDPWindow *window;
/**
* 初始化展示的BBACommonPopupMenuViewController
*
* @param itemArray 列表的数据 ,最多显示8个
* @param targetView 需要显示在传入的View 的上方或者下方,取传入view 的中点的上边缘或者下边缘确定箭头的显示位置,弹出弹框,如果没有箭头,则基于中点位置,进行布局
* @param showArrow 是否需要箭头
* @param arrowDirection 箭头方向,传入对应的的方向,内部会优先向传入的方向弹出,如果弹出的方向,展示不下,会进行展示方向判断,展示规则同弹框展示规则
* @param showMask 是否需要蒙层,不透明度50%
* @param positionOffset 位置偏移值
* @param offsetBaseline 默认不进行处理,选择不同的基线,以选择的基线,正数向右偏移,负数向左偏移
* @param itemClickBlock item点击的回调事s件
*/
- (instancetype)initWithItems:(NSArray <BBACommonPopupMenuItem *> *)itemArray
targetView:(UIView *)targetView
showArrow:(BOOL)showArrow
arrowDirection:(BBACommonPopupMenuArrowDirection)arrowDirection
showMask:(BOOL)showMask
positionOffset:(CGFloat)positionOffset
offsetBaseline:(BBACommonPopupMenuPositionOffsetBaseline)offsetBaseline
itemClick:(void(^)(NSInteger index))itemClickBlock;
/**
* 初始化展示的BBACommonPopupMenuViewController
*
* @param customView 自定义的view
* @param targetView 需要显示在哪个View 附近
* @param showMask 是否需要蒙层,不透明度50%
* @param showArrow 是否需要箭头
* @param arrowDirection 箭头方向,传入对应的的方向,内部会优先向传入的方向弹出,如果弹出的方向,展示不下,会进行展示方向判断,展示规则同弹框展示规则
* @param positionOffset 位置偏移值
* @param offsetBaseline 默认不进行处理,选择不同的基线,以选择的基线,正数向右偏移,负数向左偏移
*/
- (instancetype)initWithCustomView:(UIView *)customView
targetView:(UIView *)targetView
showMask:(BOOL)showMask
showArrow:(BOOL)showArrow
arrowDirection:(BBACommonPopupMenuArrowDirection)arrowDirection
positionOffset:(CGFloat)positionOffset
offsetBaseline:(BBACommonPopupMenuPositionOffsetBaseline)offsetBaseline;
- (void)setup;
/**
* 隐藏popupMenu
*
*/
- (void)hideWithAnimation:(BOOL)isAnimation;
/**
* 初始化展示的popupMenu的列表
*
* @param itemArray 列表的数据
*/
- (void)updateWithItems:(NSArray <BBACommonPopupMenuItem *> *)itemArray;
/**
* 外部更新了已加入列表的数据,需要更新列表,调用该方法进行界面刷新
*
*/
- (void)reloadData;
/**
* 更新展示的popupMenu的自定义View
*
* @param customView 自定义的视图
*/
- (void)updateWithCustomView:(UIView *)customView;
@end
NS_ASSUME_NONNULL_END