// // QXCustomAlertView.m // QXLive // // Created by 启星 on 2025/10/10. // #import "QXCustomAlertView.h" @interface QXCustomAlertView() @property (nonatomic,strong)UIView *bgView; @property (nonatomic,strong)UILabel *titleLabel; @property (nonatomic,strong)UILabel *messageLabel; @property (nonatomic,strong)UIButton *cancelBtn; @property (nonatomic,strong)UIButton *commitBtn; @end @implementation QXCustomAlertView - (instancetype)init { self = [super init]; if (self) { self.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); [self initSubviews]; } return self; } -(void)initSubviews{ self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.5]; self.bgView = [[UIView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-ScaleWidth(275))/2.0, -self.height, ScaleWidth(275), ScaleWidth(300))]; self.bgView.backgroundColor = [UIColor whiteColor]; self.bgView.layer.masksToBounds = YES; self.bgView.layer.cornerRadius = 16; [self addSubview:self.bgView]; self.titleLabel = [[UILabel alloc] init]; self.titleLabel.font = [UIFont boldSystemFontOfSize:16]; self.titleLabel.text = QXText(@"温馨提示"); self.titleLabel.textColor = RGB16(0x333333); [self.bgView addSubview:self.titleLabel]; [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.equalTo(self.bgView); make.top.equalTo(self.bgView).offset(16); make.height.mas_equalTo(24); }]; self.messageLabel = [[UILabel alloc] init]; self.messageLabel.font = [UIFont boldSystemFontOfSize:16]; // self.messageLabel.text = QXText(@"您确定要清空背包吗?"); self.messageLabel.textColor = RGB16(0x000000); self.messageLabel.textAlignment = NSTextAlignmentCenter; self.messageLabel.numberOfLines = 0; [self.bgView addSubview:self.messageLabel]; [self.messageLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.bgView).offset(16); make.right.equalTo(self.bgView).offset(-16); make.centerY.equalTo(self.bgView); }]; self.commitBtn = [[UIButton alloc] init]; [self.commitBtn addRoundedCornersWithRadius:21]; self.commitBtn.backgroundColor = QXConfig.themeColor; [self.commitBtn setTitle:QXText(@"确认") forState:(UIControlStateNormal)]; [self.commitBtn setTitleColor:QXConfig.btnTextColor forState:(UIControlStateNormal)]; self.commitBtn.titleLabel.font = [UIFont systemFontOfSize:14]; [self.commitBtn addTarget:self action:@selector(commitAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.bgView addSubview:self.commitBtn]; [self.commitBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.bgView).offset(-12); make.height.mas_equalTo(42); make.width.mas_equalTo(ScaleWidth(110)); make.right.mas_equalTo(-20); }]; self.cancelBtn = [[UIButton alloc] init]; [self.cancelBtn addRoundedCornersWithRadius:21]; self.cancelBtn.backgroundColor = RGB16(0xF3F3F3); [self.cancelBtn setTitle:QXText(@"取消") forState:(UIControlStateNormal)]; [self.cancelBtn setTitleColor:RGB16(0x999999) forState:(UIControlStateNormal)]; self.cancelBtn.titleLabel.font = [UIFont systemFontOfSize:14]; [self.cancelBtn addTarget:self action:@selector(cancelAction) forControlEvents:(UIControlEventTouchUpInside)]; [self.bgView addSubview:self.cancelBtn]; [self.cancelBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(self.bgView).offset(-12); make.height.mas_equalTo(42); make.width.mas_equalTo(ScaleWidth(110)); make.left.mas_equalTo(20); }]; } -(void)cancelAction{ if (self.cancelBlock) { self.cancelBlock(); } [self hide]; } -(void)commitAction{ if (self.commitBlock) { self.commitBlock(); } [self hide]; } -(void)showInView:(UIView *)view title:(NSString *)title message:(NSString *)message cancleTitle:(NSString *)cancleTitle commitTitle:(NSString *)commitTitle{ if ([title isExist]) { self.titleLabel.text = title; } if ([message isExist]) { self.messageLabel.text = message; } if (cancleTitle) { [self.cancelBtn setTitle:cancleTitle forState:(UIControlStateNormal)]; } if (commitTitle) { [self.commitBtn setTitle:cancleTitle forState:(UIControlStateNormal)]; } [view addSubview:self]; [UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ self.bgView.y = (SCREEN_HEIGHT-ScaleWidth(362))/2.0; } completion:^(BOOL finished) { }]; } -(void)hide{ [UIView animateWithDuration:0.3 delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ self.bgView.y = SCREEN_HEIGHT; } completion:^(BOOL finished) { [self removeFromSuperview]; }]; } @end