| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- //
- // TUISecondConfirm.m
- // TIMCommon
- //
- // Created by xiangzhang on 2023/5/15.
- // Copyright © 2023 Tencent. All rights reserved.
- //
- #import "TUISecondConfirm.h"
- #import <TUICore/TUIDefine.h>
- #import <TUICore/UIView+TUILayout.h>
- @implementation TUISecondConfirmBtnInfo
- @end
- static UIWindow *gSecondWindow = nil;
- static TUISecondConfirmBtnInfo *gCancelBtnInfo = nil;
- static TUISecondConfirmBtnInfo *gConfirmBtnInfo = nil;
- @implementation TUISecondConfirm
- + (void)show:(NSString *)title cancelBtnInfo:(TUISecondConfirmBtnInfo *)cancelBtnInfo confirmBtnInfo:(TUISecondConfirmBtnInfo *)confirmBtnInfo {
- gCancelBtnInfo = cancelBtnInfo;
- gConfirmBtnInfo = confirmBtnInfo;
- gSecondWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
- gSecondWindow.windowLevel = UIWindowLevelAlert - 1;
- gSecondWindow.backgroundColor = [UIColor clearColor];
- gSecondWindow.hidden = NO;
- if (@available(iOS 13.0, *)) {
- for (UIWindowScene *windowScene in [UIApplication sharedApplication].connectedScenes) {
- if (windowScene.activationState == UISceneActivationStateForegroundActive) {
- gSecondWindow.windowScene = windowScene;
- break;
- }
- }
- }
- UIView *backgroupView = [[UIView alloc] initWithFrame:gSecondWindow.bounds];
- backgroupView.backgroundColor = RGBA(0, 0, 0, 0.4);
- [gSecondWindow addSubview:backgroupView];
- UIView *confimView = [[UIView alloc] init];
- confimView.backgroundColor = TIMCommonDynamicColor(@"second_confirm_bg_color", @"#FFFFFF");
- confimView.layer.cornerRadius = 13;
- confimView.layer.masksToBounds = YES;
- [gSecondWindow addSubview:confimView];
- confimView.mm_width(gSecondWindow.mm_w - kScale375(32) * 2).mm_height(183).mm__centerX(gSecondWindow.mm_centerX).mm__centerY(gSecondWindow.mm_h / 2);
- UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, confimView.mm_w, 123)];
- titleLabel.text = title;
- titleLabel.textColor = TIMCommonDynamicColor(@"second_confirm_title_color", @"#000000");
- titleLabel.textAlignment = NSTextAlignmentCenter;
- titleLabel.font = [UIFont systemFontOfSize:16];
- titleLabel.numberOfLines = 0;
- [confimView addSubview:titleLabel];
- UIView *line1 = [[UIView alloc] initWithFrame:CGRectMake(0, titleLabel.mm_maxY, titleLabel.mm_w, 0.5)];
- line1.backgroundColor = TIMCommonDynamicColor(@"second_confirm_line_color", @"#DDDDDD");
- [confimView addSubview:line1];
- UIButton *cancelBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [cancelBtn setFrame:CGRectMake(0, line1.mm_maxY, line1.mm_w / 2, confimView.mm_h - line1.mm_maxY)];
- [cancelBtn setTitle:gCancelBtnInfo.tile forState:UIControlStateNormal];
- [cancelBtn.titleLabel setFont:[UIFont systemFontOfSize:16]];
- [cancelBtn setTitleColor:TIMCommonDynamicColor(@"second_confirm_cancel_btn_title_color", @"#000000") forState:UIControlStateNormal];
- [cancelBtn addTarget:self action:@selector(onCancelBtnClick) forControlEvents:UIControlEventTouchUpInside];
- [confimView addSubview:cancelBtn];
- UIView *line2 = [[UIView alloc] initWithFrame:CGRectMake(cancelBtn.mm_maxX, cancelBtn.mm_y, 0.5, cancelBtn.mm_h)];
- line2.backgroundColor = TIMCommonDynamicColor(@"second_confirm_line_color", @"#DDDDDD");
- [confimView addSubview:line2];
- UIButton *confirmBtn = [UIButton buttonWithType:UIButtonTypeCustom];
- [confirmBtn setFrame:CGRectMake(line2.mm_maxX, cancelBtn.mm_y, cancelBtn.mm_w, cancelBtn.mm_h)];
- [confirmBtn setTitle:gConfirmBtnInfo.tile forState:UIControlStateNormal];
- [confirmBtn.titleLabel setFont:[UIFont systemFontOfSize:16]];
- [confirmBtn setTitleColor:TIMCommonDynamicColor(@"second_confirm_confirm_btn_title_color", @"#FF584C") forState:UIControlStateNormal];
- [confirmBtn addTarget:self action:@selector(onConfirmBtnBtnClick) forControlEvents:UIControlEventTouchUpInside];
- [confimView addSubview:confirmBtn];
- }
- + (void)onCancelBtnClick {
- if (gCancelBtnInfo && gCancelBtnInfo.click) {
- gCancelBtnInfo.click();
- }
- [self dismiss];
- }
- + (void)onConfirmBtnBtnClick {
- if (gConfirmBtnInfo && gConfirmBtnInfo.click) {
- gConfirmBtnInfo.click();
- }
- [self dismiss];
- }
- + (void)dismiss {
- gSecondWindow = nil;
- gCancelBtnInfo = nil;
- gConfirmBtnInfo = nil;
- }
- @end
|