cdts/xdts-ios 3/TreeHole/Code/Utility/YBPopupMenu/YBPopupMenu.h

277 lines
7.1 KiB
C
Raw Normal View History

2023-07-27 09:20:00 +08:00
//
// YBPopupMenu.h
// YBPopupMenu
//
// Created by lyb on 2017/5/10.
// Copyright © 2017年 lyb. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "YBPopupMenuPath.h"
// 过期提醒
#define YBDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)
typedef NS_ENUM(NSInteger , YBPopupMenuType) {
YBPopupMenuTypeDefault = 0,
YBPopupMenuTypeDark
};
/**
*/
typedef NS_ENUM(NSInteger , YBPopupMenuPriorityDirection) {
YBPopupMenuPriorityDirectionTop = 0, //Default
YBPopupMenuPriorityDirectionBottom,
YBPopupMenuPriorityDirectionLeft,
YBPopupMenuPriorityDirectionRight,
YBPopupMenuPriorityDirectionNone //不自动调整
};
@class YBPopupMenu;
@protocol YBPopupMenuDelegate <NSObject>
@optional
///////旧版本/////////
/**
*/
- (void)ybPopupMenuDidSelectedAtIndex:(NSInteger)index ybPopupMenu:(YBPopupMenu *)ybPopupMenu YBDeprecated("请替用 ybPopupMenu: didSelectedAtIndex: 方法");
- (void)ybPopupMenuBeganDismiss;
- (void)ybPopupMenuDidDismiss;
- (void)ybPopupMenuBeganShow;
- (void)ybPopupMenuDidShow;
///////新版本/////////
- (void)ybPopupMenu:(YBPopupMenu *)ybPopupMenu didSelectedAtIndex:(NSInteger)index;
/**
cell
cell fontSize textColor backColor type
cell itemHeight
cell
*/
- (UITableViewCell *)ybPopupMenu:(YBPopupMenu *)ybPopupMenu cellForRowAtIndex:(NSInteger)index;
@end
@interface YBPopupMenu : UIView
/**
*/
@property (nonatomic, strong, readonly) NSArray * titles;
/**
*/
@property (nonatomic, strong, readonly) NSArray * images;
/**
tableView Default separatorStyle is UITableViewCellSeparatorStyleNone
*/
@property (nonatomic, strong) UITableView * tableView;
/**
Default is 5.0
*/
@property (nonatomic, assign) CGFloat cornerRadius;
/**
Default is UIRectCornerAllCorners
corner会自动转换至镜像方向
*/
@property (nonatomic, assign) UIRectCorner rectCorner;
/**
Default is YES
*/
@property (nonatomic, assign , getter=isShadowShowing) BOOL isShowShadow;
/**
Default is YES
*/
@property (nonatomic, assign) BOOL showMaskView;
/**
Default is YES
*/
@property (nonatomic, assign) BOOL dismissOnSelected;
/**
Default is YES
*/
@property (nonatomic, assign) BOOL dismissOnTouchOutside;
/**
cell时忽略 Default is 15
*/
@property (nonatomic, assign) CGFloat fontSize;
@property (nonatomic, strong) UIFont *textFont;
@property (nonatomic, strong) UIFont *checkedTextFont;
/**
cell时忽略 Default is [UIColor blackColor]
*/
@property (nonatomic, strong) UIColor * textColor;
@property (nonatomic, strong) UIColor * checkedTextColor;
@property (nonatomic, strong) UIImage * checkedIconImage;
@property (nonatomic, assign) NSInteger checkedRow;
/**
(>= 0) Default is 0.0
*/
@property (nonatomic, assign) CGFloat offset;
// 分割线间距
@property (nonatomic, assign) UIEdgeInsets lineInset;
// Default 1.0
@property (nonatomic, assign) CGFloat lineHeight;
@property (nonatomic, strong) UIColor *lineColor;
/**
Default is 0.0
> 0
*/
@property (nonatomic, assign) CGFloat borderWidth;
/**
Default is LightGrayColor
borderWidth <= 0
*/
@property (nonatomic, strong) UIColor * borderColor;
/**
Default is 15
*/
@property (nonatomic, assign) CGFloat arrowWidth;
/**
Default is 10
*/
@property (nonatomic, assign) CGFloat arrowHeight;
/**
Default is center
YBPopupMenuPriorityDirectionLeft/YBPopupMenuPriorityDirectionRight/YBPopupMenuPriorityDirectionNone时需要设置
*/
@property (nonatomic, assign) CGFloat arrowPosition;
/**
Default is YBPopupMenuArrowDirectionTop
*/
@property (nonatomic, assign) YBPopupMenuArrowDirection arrowDirection;
/**
Default is YBPopupMenuPriorityDirectionTop
*/
@property (nonatomic, assign) YBPopupMenuPriorityDirection priorityDirection;
/**
Default is 5;
*/
@property (nonatomic, assign) NSInteger maxVisibleCount;
/**
menu背景色 cell时忽略 Default is WhiteColor
*/
@property (nonatomic, strong) UIColor * backColor;
/**
item的高度 Default is 44;
*/
@property (nonatomic, assign) CGFloat itemHeight;
/**
popupMenu距离最近的Screen的距离 Default is 10
*/
@property (nonatomic, assign) CGFloat minSpace;
/**
cell时忽略 Default is YBPopupMenuTypeDefault
*/
@property (nonatomic, assign) YBPopupMenuType type;
/**
*/
@property (nonatomic, weak) id <YBPopupMenuDelegate> delegate;
/**
@param titles NSString/NSAttributedString
@param icons NSString/UIImage
@param itemWidth
@param delegate
*/
+ (YBPopupMenu *)showAtPoint:(CGPoint)point
titles:(NSArray *)titles
icons:(NSArray *)icons
menuWidth:(CGFloat)itemWidth
delegate:(id<YBPopupMenuDelegate>)delegate;
/**
()
@param point
@param titles NSString/NSAttributedString
@param icons NSString/UIImage
@param itemWidth
@param otherSetting
*/
+ (YBPopupMenu *)showAtPoint:(CGPoint)point
titles:(NSArray *)titles
icons:(NSArray *)icons
menuWidth:(CGFloat)itemWidth
otherSettings:(void (^) (YBPopupMenu * popupMenu))otherSetting;
/**
view弹出
@param titles NSString/NSAttributedString
@param icons NSString/UIImage
@param itemWidth
@param delegate
*/
+ (YBPopupMenu *)showRelyOnView:(UIView *)view
titles:(NSArray *)titles
icons:(NSArray *)icons
menuWidth:(CGFloat)itemWidth
delegate:(id<YBPopupMenuDelegate>)delegate;
/**
view弹出()
@param titles NSString/NSAttributedString
@param icons NSString/UIImage
@param itemWidth
@param otherSetting
*/
+ (YBPopupMenu *)showRelyOnView:(UIView *)view
titles:(NSArray *)titles
icons:(NSArray *)icons
menuWidth:(CGFloat)itemWidth
otherSettings:(void (^) (YBPopupMenu * popupMenu))otherSetting;
/**
*/
- (void)dismiss;
@end