MY_OC_ iOS_底部弹出View

image
#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];
   }];

}

推荐阅读更多精彩内容