ios swift alert 自定义弹框 点击半透明部分弹框消失

文章目录

  • 1.BaseAlertVC
  • 2.BindFrameNumAlertVC

请添加图片描述

1.BaseAlertVC

import UIKitclass BaseAlertVC: GLBaseViewController {let centerView = UIView()override func viewDidLoad() {super.viewDidLoad()view.backgroundColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.3)let tap = UITapGestureRecognizer.init(target: self, action: #selector(tapView))tap.delegate = selfview.addGestureRecognizer(tap)view.addSubview(centerView)}@objc func tapView() {dismiss()}}extension BaseAlertVC: UIGestureRecognizerDelegate {func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {if (touch.view?.isDescendant(of: centerView))! {return false;}else{return true;}}}

2.BindFrameNumAlertVC

import UIKit
import XHToastSwiftclass BindFrameNumAlertVC: BaseAlertVC,UITextFieldDelegate {let textField = UITextField()func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {// Get the new text after the user enters or deletes characterslet newText = (textField.text as NSString?)?.replacingCharacters(in: range, with: string) ?? ""// Limit the text field to 15 charactersreturn newText.count <= 15}override func viewDidLoad() {super.viewDidLoad()centerView.backgroundColor = .whitecenterView.snp.makeConstraints { make inmake.width.equalTo(300)make.height.equalTo(250)make.center.equalToSuperview()}centerView.layer.cornerRadius = 10let titleLabel = UILabel()centerView.addSubview(titleLabel)titleLabel.text = LocalizableManager.localValue("binding_frame_number")titleLabel.snp.makeConstraints { make inmake.centerX.equalToSuperview()make.top.equalToSuperview().offset(20)}textField.delegate = selftextField.backgroundColor = UIColor.rgbColor(red: 219, green: 219, blue: 219)textField.keyboardType = .numberPadtextField.textAlignment = .centercenterView.addSubview(textField)textField.snp.makeConstraints { make inmake.centerX.equalToSuperview()make.width.equalTo(220)make.height.equalTo(50)make.top.equalTo(titleLabel.snp_bottom).offset(30)}textField.layer.cornerRadius = 10//限制textField只能输入15个字符let alertLabel = UILabel()alertLabel.numberOfLines = 0alertLabel.font = UIFont(name: "PingFang SC", size: 13)alertLabel.textColor = .grayalertLabel.text = LocalizableManager.localValue("input_corresponding_code")centerView.addSubview(alertLabel)alertLabel.snp.makeConstraints { make inmake.top.equalTo(textField.snp_bottom).offset(10)make.left.equalTo(textField).offset(10)make.right.equalTo(textField)}let sureBtn = UIButton()sureBtn.backgroundColor = UIColor.rgbColor(red: 219, green: 219, blue: 219)sureBtn.setTitleColor(.black, for: .normal)sureBtn.addTarget(self, action: #selector(sureBtnClick), for: .touchUpInside)sureBtn.setTitle(LocalizableManager.localValue("sure"), for: .normal)centerView.addSubview(sureBtn)sureBtn.snp.makeConstraints { make inmake.left.equalToSuperview().offset(30)make.bottom.equalToSuperview().offset(-20)make.width.equalTo(100)make.height.equalTo(40)}sureBtn.layer.cornerRadius = 20let cancelBtn = UIButton()cancelBtn.backgroundColor = newUIYellowcancelBtn.addTarget(self, action: #selector(cancelBtnClick), for: .touchUpInside)cancelBtn.setTitle(LocalizableManager.localValue("cancel"), for: .normal)centerView.addSubview(cancelBtn)cancelBtn.snp.makeConstraints { make inmake.right.equalToSuperview().offset(-30)make.bottom.equalToSuperview().offset(-20)make.width.equalTo(100)make.height.equalTo(40)}cancelBtn.layer.cornerRadius = 20}@objc func sureBtnClick(){print(textField.text)guard let str = textField.text,str.count == 15 else {XHToast.showBottomWithText(LocalizableManager.localValue("input_only_six_num"))return}}@objc func cancelBtnClick(){}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/69422.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring相关面试题

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱写博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;个人博客&#xff1a;敬请期待 &#x1f4d5;系列…

拒绝摆烂!C语言练习打卡第二天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4dd;…

(十六)大数据实战——安装使用mysql版的hive服务

前言 hive默认使用的是内嵌据库derby&#xff0c;Derby 是一个嵌入式数据库&#xff0c;可以轻松地以库的形式集成到应用程序中。它不需要独立的服务器进程&#xff0c;所有的数据存储在应用程序所在的文件系统中。为了支持hive服务更方便的使用&#xff0c;我们使用mysql数据…

单片机直驱两相四线步进电机研究

【本文发布于https://blog.csdn.net/Stack_/article/details/132236329&#xff0c;未经允许不得转载&#xff0c;转载须注明出处】 双极性步进电机&#xff08;两相四线步进电机&#xff09;&#xff0c;原理的东西就先不讲太多了&#xff0c;还没搞清楚&#xff0c;边查资料边…

iTOP-i.MX8M开发板添加USB网络设备驱动

选中支持 USB 网络设备驱动&#xff0c;如下图所示&#xff1a; [*] Device Drivers→ *- Network device support → USB Network Adapters→ {*} Multi-purpose USB Networking Framework 将光标移动到 save 保存&#xff0c;如下图所示&#xff1a; 保存到 arch/arm64/c…

基于注意力神经网络的深度强化学习探索方法:ARiADNE

ARiADNE:A Reinforcement learning approach using Attention-based Deep Networks for Exploration 文章目录 ARiADNE:A Reinforcement learning approach using Attention-based Deep Networks for Exploration机器人自主探索(ARE)ARE的传统边界法非短视路径深度强化学习的方…

ppt中线材相交接的地方,如何绘画

ppt中线材相交接的地方&#xff1a; 在ppt中绘画线材相互交接的地方&#xff1a; 1.1绘图工具中的“弧形” 1.2小技巧 “弧形”工具点一下&#xff0c;在ppt中如下 1.3拖动活动点进行调整图形 1.4绘画圆弧 1.5调整“圆弧”的大小&#xff0c;鼠标放在“黄色点”位置&#xf…

极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)

目录 template 引用&#xff0c;减少代码冗余&#xff0c;增强 CI/CD 构建扩展性 问题 1&#xff1a;代码冗余&#xff0c;低效实践 问题 2&#xff1a;维护性难&#xff0c;工作量大 ➤ local ➤ file ➤ remote ➤ template 收益 1&#xff1a;一处修改&#xff0c;多…

kubernetes企业级高可用部署

目录 1、Kubernetes高可用项目介绍 2、项目架构设计 2.1、项目主机信息 2.2、项目架构图 1、Kubernetes高可用项目介绍 2、项目架构设计 2.1、项目主机信息 2.2、项目架构图 2.3、项目实施思路 3、项目实施过程 3.1、系统初始化 3.2、配置部署keepalived服务 3.3、…

炬芯科技低延迟高音质无线麦克风解决方案

随着互联网技术的高速发展&#xff0c;诸多新兴产业被带动起来。就近十年来看&#xff0c;内容平台以及其载体在不断演变&#xff0c;从自媒体到短视频以及直播&#xff0c;一点一滴地渗透进大众生活。而这些平台的兴起&#xff0c;亦为普罗大众提供了广阔的分享空间&#xff0…

【C++】位图与布隆过滤器(内含相关高频面试题)

本篇文章会对位图和布隆过滤器进行详解。同时还会给出位图和布隆过滤器相关的高频面试题与解答。希望本篇文章会对你有所帮助。 文章目录 一、位图的引入 1、1 查找整数&#xff08;腾讯面试题&#xff09; 1、2 解决方法1 1、3 解决方法2 1、3、1 外部排序 二、位图的原理与…

【k8s】基于Prometheus监控Kubernetes集群安装部署

目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana web操作 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 IP地址 主机名 组件 192.168.100.131 k8s-ma…