// // GMPopupBgView.h // Gengmei // // Created by wangyang on 2018/3/2. // Copyright © 2018年 更美互动信息科技有限公司. All rights reserved. // #import <GMKit/GMView.h> @protocol GMPopupBgViewDelegate <NSObject> @optional - (void)popupBgViewDidDismiss; - (void)didCompletedAnimation; @end typedef NS_ENUM(NSUInteger, GMPopupAnimationType) { GMPopupAnimationTypeNone = 0, GMPopupAnimationTypeFade, // 从底部滑出(默认) GMPopupAnimationTypeFlipFromBottom, // 从中心立即显示并做弹簧动画 GMPopupAnimationTypeSpringScaleFromCenter, // 自定义 GMPopupAnimationTypeCustom = 100, }; /** 所有使用半透明背景的popView,都使用该Class作为父类 */ @interface GMPopupBgView : GMView<UIGestureRecognizerDelegate> // 半透明背景颜色。默认是[UIColor colorWithWhite:0 alpha:0.6] @property (nonatomic, strong) UIColor *bgAlphaColor; @property (nonatomic, weak) id<GMPopupBgViewDelegate> delegate; /** container的背景颜色,位置(坐标或者约束)是可以自定义的。 container的大小可以使用约束自动计算,也可以显示的设置size */ @property (nonatomic, strong) UIView *container; /** 点击空白区域不隐藏视图 */ @property (nonatomic, assign) BOOL disableCancelTouch; /** 使用 GMPopupAnimationTypeCustom 时,可以自定义container的动画。默认为 GMPopupAnimationTypeFlipFromBottom 自定义动画必须在 containerShowAnimation 与 containerHideAnimation 中实现 */ @property (nonatomic, assign) GMPopupAnimationType animationType; // 默认是0.3秒 @property (nonatomic, assign) CGFloat animationDuration; @property (nonatomic, copy) void (^containerShowAnimation) (GMPopupBgView *bgView, CGFloat duration); @property (nonatomic, copy) void (^containerHideAnimation) (GMPopupBgView *bgView, CGFloat duration); /** 点击半透明背景会触发该方法隐藏,执行隐藏动画,然后removeFromSuperview。 注意:不会调用delegate.popupBgViewDidDismiss() */ - (void)hide; - (void)didTapView; @end