iOS - 自定义 下弹框

具体封装代码
#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];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,432评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,536评论 0 17
  • 今天处理了两件棘手的事情一个是跟公司创始人签约退居二线另外一位非常在意职位的高管降职幸好结果还不错最后都实现了预期...
    承谦阅读 200评论 0 0
  • 老院子有人老了不远处的院落起了哀乐同着每一次永远离去人后的哀乐声发出在低矮的木板堂屋高高的乌瓦顶嘶喊 震颤 向...
    罗陆离阅读 1,082评论 0 2
  • 一四、山栖是胜事 山栖是胜事,稍一萦恋,则亦市朝。书画鉴赏是雅事,稍一贪痴,则亦商贾。诗酒是乐事,稍一曲人,...
    公子小白2020阅读 382评论 0 0