自定义alertview

2021-09-06  本文已影响0人  马克雅

//

//  TestAlertView.m

//  YanKa

//

//  Created by Lei on 2021/9/6.

//

#import "TestAlertView.h"

@interface TestAlertView ()

@property (nonatomic, strong) UIView *bgView;          //半透明黑色背景

@property (nonatomic, strong) UIView *containerView;

@property (nonatomic, strong) UITableView *tableView;

@end

@implementation TestAlertView

-(instancetype)initWithFrame:(CGRect)frame{

    self=[superinitWithFrame:frame];

    if(self) {

        [selfaddSubview:self.bgView];

    }

    return self;

}

#pragma mark- 懒加载

-(UIView*)bgView{

    if(!_bgView) {

        _bgView = [[UIView alloc] initWithFrame:self.frame];

        [_bgView setBackgroundColor:[UIColor clearColor]];

        [_bgViewsetAlpha:0];

        [_bgView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideMyPicker)]];

    }

    return _bgView;

}

-(UIView *)containerView{

    if (!_containerView) {

        _containerView = [[UIView alloc] initWithFrame:CGRectMake(0, _bgView.height - 300, self.width, 300)];

        _containerView.backgroundColor=[UIColor orangeColor];

        [_containerView addSubview:self.tableView];

        [_containerView setTransform:CGAffineTransformMakeTranslation(0, CGRectGetHeight(_containerView.frame))];

    }

    return _containerView;

}

-(UITableView *)tableView{

    if(!_tableView) {

        _tableView=[[UITableView alloc] initWithFrame:CGRectMake(14, 0, SCREEN_WIDTH-28, 250) style:UITableViewStylePlain];

        _tableView.layer.cornerRadius=10;

        _tableView.layer.masksToBounds=YES;

        _tableView.backgroundColor=[UIColor blueColor];

        _tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

        _tableView.scrollEnabled=NO;

        //解决视图漂移或者闪动解决方法

        _tableView.estimatedRowHeight = 0;

        _tableView.estimatedSectionHeaderHeight = 0;

        _tableView.estimatedSectionFooterHeight = 0;

        _tableView.sectionHeaderHeight=0;

        _tableView.sectionFooterHeight=0;

//        _tableView.dataSource=self;

//        _tableView.delegate=self;

//        [_tableView registerClass:[PopPhotoAuthCell class] forCellReuseIdentifier:@"PopPhotoAuthCell"];

    }

    return _tableView;

}

#pragma mark - 点击透明背景hidden

- (void)hideMyPicker{

    [UIView animateWithDuration:0.2

                          delay:0

                        options:UIViewAnimationOptionCurveEaseInOut

                     animations:^{

                         [_bgViewsetAlpha:1];

                         [_containerView setTransform:CGAffineTransformIdentity];

                     }completion:^(BOOLcompleted) {

                         [selfsetPickerHidden:YES];

                     }];

}

-(void)showAlertView{

    [self addSubview:self.containerView];

    [self setPickerHidden:NO];

}

#pragma mark - Show/hide PickerView methods

-(void)setPickerHidden:(BOOL)hidden{

    [UIView animateWithDuration:0.2

                          delay:0

                        options:UIViewAnimationOptionCurveEaseInOut

                     animations:^{

                         if(hidden) {

                             [_bgViewsetAlpha:0];

                             [_containerView setTransform:CGAffineTransformMakeTranslation(0, CGRectGetHeight(_containerView.frame))];

                         }else{

                             [_bgViewsetAlpha:1.0];

                             [_containerView setTransform:CGAffineTransformIdentity];

                         }

                     }completion:^(BOOLcompleted) {

                         if(completed && hidden){

                             [selfremoveFromSuperview];

                         }

                     }];

}

@end

上一篇下一篇

猜你喜欢

热点阅读