在.h文件中线声明show()方法
- (void)show;
.m文件中添加全屏遮罩,在遮罩上添加了一个选择框并添加了底部弹出的动画,可自行在其中添加tableview、pickerview等其他视图,并添加了点击选择框视图外区域隐藏
#import "MaskView.h"
@interface MaskView()
@property (nonatomic ,strong) UIView *deliverView; //底部View
@property (nonatomic ,strong) UIView *BGView; //遮罩
@end
@implementation MaskView
- (instancetype)initWithFrame:(CGRect)frame {
if ([super initWithFrame:frame]) {
}
return self;
}
- (void)appearClick {
// ------全屏遮罩
self.BGView = [[UIView alloc] init];
self.BGView.frame = [[UIScreen mainScreen] bounds];
self.BGView.tag = 100;
self.BGView.backgroundColor = [HexColor(@"#000000") colorWithAlphaComponent:0.0];
self.BGView.opaque = NO;
//--UIWindow的优先级最高,Window包含了所有视图,在这之上添加视图,可以保证添加在最上面
UIWindow *appWindow = [[UIApplication sharedApplication] keyWindow];
[appWindow addSubview:self.BGView];
// ------给全屏遮罩添加的点击事件
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(exitClick)];
gesture.numberOfTapsRequired = 1;
gesture.cancelsTouchesInView = NO;
[self.BGView addGestureRecognizer:gesture];
[UIView animateWithDuration:0.3 animations:^{
self.BGView.backgroundColor = [HexColor(@"#000000") colorWithAlphaComponent:0.24];
}];
// ------底部弹出的View
self.deliverView = [[UIView alloc] init];
// self.deliverView.frame = CGRectMake(0, SCREEN_WIDTH, SCREEN_WIDTH, 306);
ViewRadius(self.deliverView, 16);
self.deliverView.backgroundColor = myCellColor;
[appWindow addSubview:self.deliverView];
[self.deliverView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(0);
make.width.mas_equalTo(kWidth);
make.height.mas_equalTo(306);
}];
// ------View出现动画
self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, SCREEN_HEIGHT);
[UIView animateWithDuration:0.5 animations:^{
self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, 0.01);
}];
[self.deliverView addSubview:self.tableView];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(18);
make.left.mas_equalTo(0);
make.width.mas_equalTo(kWidth);
make.height.mas_equalTo(48 * 5);
}];
}
/**
* 功能: View退出
*/
- (void)exitClick {
NSLog(@"====");
[UIView animateWithDuration:0.5 animations:^{
self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, SCREEN_HEIGHT);
self.deliverView.alpha = 0.2;
self.BGView.alpha = 0;
} completion:^(BOOL finished) {
[self.BGView removeFromSuperview];
[self.deliverView removeFromSuperview];
}];
}
@end