135 lines
4.9 KiB
Objective-C
135 lines
4.9 KiB
Objective-C
//
|
|
// 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
|