#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
@property (nonatomic ,strong) UIView *deliverView;
//底部View@property (nonatomic ,strong) UIView *BGView;
//遮罩- (void)appearClick {
// ------全屏遮罩
self.BGView = [[UIView alloc] init]; self.BGView.frame = [[UIScreen mainScreen] bounds]; self.BGView.tag = 100; self.BGView.backgroundColor = [[UIColor blackColor] 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 = [[UIColor blackColor] colorWithAlphaComponent:0.2];
}];
// ------底部弹出的View
self.deliverView = [[UIView alloc] init]; self.deliverView.frame = CGRectMake(0, SCREEN_WIDTH, SCREEN_WIDTH, SCREEN_WIDTH); self.deliverView.backgroundColor = [UIColor whiteColor];
[appWindow addSubview:self.deliverView];
// ------View出现动画
self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, SCREEN_HEIGHT);
[UIView animateWithDuration:0.3 animations:^{ self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, 0.01);
}];
}/**
* 功能: View退出
*/- (void)exitClick { NSLog(@"====");
[UIView animateWithDuration:0.3 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];
}];
}