美文网首页
iOS - 自定义 下弹框

iOS - 自定义 下弹框

作者: Mr_Bob_ | 来源:发表于2017-04-26 16:00 被阅读121次
    具体封装代码
    #pragma mark -- 懒加载
    - (UIView *)popTopView {
        if (!_popTopView) {
            // 自定义弹框内容
            _popTopView = [[UIView alloc] initWithFrame:CGRectMake(0, -SCREEN_HEIGHT_NO_STATUS / 2.0f, SCREEN_WIDTH_NO_STATUS, SCREEN_HEIGHT_NO_STATUS / 2.0f)];
            _popTopView.backgroundColor = [UIColor whiteColor];
    
            // 自定义弹框内容
            UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 64.0f)];
            titleView.backgroundColor = MAIN_TINT_COLOR;
            [_popTopView addSubview:titleView];
            
            UILabel *topTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, SCREEN_WIDTH, 44.0f)];
            topTitleLabel.font = [UIFont systemFontOfSize:20.0];
            topTitleLabel.textAlignment = NSTextAlignmentCenter;
            topTitleLabel.textColor = [UIColor whiteColor];
            topTitleLabel.backgroundColor = [UIColor clearColor];
            topTitleLabel.text = @"切换工作室";
            [titleView addSubview:topTitleLabel];
            
            
        }
        return _popTopView;
    }
    - (UIView *)maskView {
        if (!_maskView) {
            _maskView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
            _maskView.backgroundColor = [UIColor colorWithWhite:0.000 alpha:0.400];
            _maskView.alpha = 0.0f;
            
            // 添加点击背景按钮
            UIButton *btn = [[UIButton alloc] initWithFrame:[UIScreen mainScreen].bounds];
            [btn addTarget:self action:@selector(close) forControlEvents:UIControlEventTouchUpInside];
            [_maskView addSubview:btn];
        }
        return _maskView;
    }
    - (void)openPopTopViewAction{ // 打开下拉弹框
        [[UIApplication sharedApplication].keyWindow addSubview:self.maskView];
        [[UIApplication sharedApplication].keyWindow addSubview:self.popTopView];
        
        [UIView animateWithDuration:0.25 animations:^{
            self.maskView.alpha = 1.0;
            self.popTopView.transform = CGAffineTransformTranslate(self.popTopView.transform, 0, SCREEN_HEIGHT_NO_STATUS / 2.0f);
        } completion:^(BOOL finished) {
            NSLog(@"%s", __func__);
        }];
    }
    - (void)close {
       // 关闭顶部视图动画
        [UIView animateWithDuration:0.3 animations:^{
            self.maskView.alpha = 0.0;
            self.popTopView.transform = CGAffineTransformIdentity;
        }completion:^(BOOL finished) {
            [self.maskView removeFromSuperview];
            [self.popTopView removeFromSuperview];
        }];
    }
    
    具体的调用方法:

    直接调用打开下拉弹框方法
    [self openPopTopViewAction];
    或者调用关闭弹框方法
    [self close];

    相关文章

      网友评论

          本文标题:iOS - 自定义 下弹框

          本文链接:https://www.haomeiwen.com/subject/asnizttx.html