从底部拉出一个view

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

}