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

这篇具有很好参考价值的文章主要介绍了ios swift alert 自定义弹框 点击半透明部分弹框消失。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

1.BaseAlertVC

import UIKit

class 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 = self
        view.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 XHToastSwift

class 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 characters
        let newText = (textField.text as NSString?)?.replacingCharacters(in: range, with: string) ?? ""

        // Limit the text field to 15 characters
        return newText.count <= 15
    }


    override func viewDidLoad() {
        super.viewDidLoad()
        
        centerView.backgroundColor = .white
        centerView.snp.makeConstraints { make in
            make.width.equalTo(300)
            make.height.equalTo(250)
            make.center.equalToSuperview()
        }
        
        centerView.layer.cornerRadius = 10
        
        let titleLabel = UILabel()
        centerView.addSubview(titleLabel)
        titleLabel.text = LocalizableManager.localValue("binding_frame_number")
        titleLabel.snp.makeConstraints { make in
            make.centerX.equalToSuperview()
            make.top.equalToSuperview().offset(20)
        }
        
        textField.delegate = self
        textField.backgroundColor = UIColor.rgbColor(red: 219, green: 219, blue: 219)
        textField.keyboardType = .numberPad
        textField.textAlignment = .center
        centerView.addSubview(textField)
        textField.snp.makeConstraints { make in
            make.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 = 0
        alertLabel.font = UIFont(name: "PingFang SC", size: 13)
        alertLabel.textColor = .gray
        alertLabel.text = LocalizableManager.localValue("input_corresponding_code")
        centerView.addSubview(alertLabel)
        alertLabel.snp.makeConstraints { make in
            make.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 in
            make.left.equalToSuperview().offset(30)
            make.bottom.equalToSuperview().offset(-20)
            make.width.equalTo(100)
            make.height.equalTo(40)
        }
        sureBtn.layer.cornerRadius = 20
        
        let cancelBtn = UIButton()
        cancelBtn.backgroundColor = newUIYellow
        cancelBtn.addTarget(self, action: #selector(cancelBtnClick), for: .touchUpInside)
        cancelBtn.setTitle(LocalizableManager.localValue("cancel"), for: .normal)
        centerView.addSubview(cancelBtn)
        cancelBtn.snp.makeConstraints { make in
            make.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(){
       
    }
    

}


文章来源地址https://www.toymoban.com/news/detail-639129.html

到了这里,关于ios swift alert 自定义弹框 点击半透明部分弹框消失的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端Vue仿美团右侧侧边栏弹框筛选框popup alert

    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随

    2024年02月16日
    浏览(43)
  • Element-ui MessageBox.$alert()方法创建弹框页面跳转无法关闭

    点击取消按钮后返回上一页,但$alert()$alert()方法创建的弹框依旧会存在,或者点击浏览器回退按钮,效果一直alert弹框依旧存在,切element官网并没有提供主动关闭弹框的api方法,尝试通过$alert()中的 distinguishCancelAndClose 属性在beforeDestroy生命周期函数中触发esc按钮关闭弹框,但上面的弹

    2024年02月11日
    浏览(65)
  • layui弹框(上)- 基础参数:弹出层、多按钮、对齐方式、遮罩层(透明度)、定时关闭...的集合

    一、使用layui的第一步:引用layui的js和css文件 link rel=\\\"stylesheet\\\" href=\\\"layui/css/layui.css\\\" / script src=\\\"layui/layui.js\\\"/script 您也可以引用网络资源 script src=\\\"layui.js:https://heerey525.github.io/layui-v2.4.3/layui/layui.js\\\"/script link rel=\\\"stylesheet\\\" href=\\\"https://heerey525.github.io/layui-v2.4.3/layui/css/layui.css\\\" 二、引

    2024年02月02日
    浏览(65)
  • 借助GPT理解 “ Android中 点击弹框外部 取消弹框”

    在平常的开发工作中 或 阅读技术博客/书籍 时,难免会遇到我们不懂的知识点,网络上搜索的资料 需要有准确性,系统性,可实操性。 这样的资料查询很费时间且还不一定能找到,但是如果借助训练过的的gpt,就会省下大量的时间且学到的知识也是体系化的。 最近借助gp

    2024年01月24日
    浏览(31)
  • vue-tour新手指导,点击按钮,进行提示,再次点击按钮,提示隐藏,点击下一步,弹框显示

    先看效果图 main.js中引入vue-tour 建一个登录页面 点击导航助手按钮,开始提示 选择学校弹出框 如果想要实现点击一次导航助手,显示提示,再次点击,提示隐藏需要这么做 在data中添加 isTourActive ,在方法中判断点击 如果不需要点击‘导航助手’进行提示,而是进入页面直接

    2024年02月09日
    浏览(51)
  • 图片背景明明透明却在UE中透明部分变成黑色

    明明是png格式背景为透明色为什么导入到UE背景为黑色!! 如图: 解决方法1:调整材质(如图) 解决方法二:直接调整图片(强烈推荐!!亲测有效) 1.选中1个或者多个需要调整的图片       右击 (如图)  2.   压缩设置改为:用户界面2D(RGBA)       纹理组改为:UI  

    2024年02月11日
    浏览(42)
  • vant UI Dialog点击确定验证后不关闭弹框

    该函数为Props 回调参数action === \\\'confirm\\\'为确定 action === \\\'close‘ 为取消 

    2024年02月13日
    浏览(52)
  • Element ui 取消点击空白处弹框关闭的效果

    目录 属性: 描述  element组件库的Dialog对话框默认是可以通过点击 modal 关闭 Dialog,即点击空白处弹框可关闭。 在 el-dialog中close-on-click-modal含义是:点击空白处是否关闭,默认true;如果需要点击空白处不关闭弹框,只需要 :close-on-click-modal=“false” 即可

    2024年02月11日
    浏览(36)
  • 前端Vue自定义签到积分获取弹框抽取红包弹框 自定义弹框内容 弹框顶部logo

    前端组件化开发:以cc-downloadDialog组件为例 随着技术的发展,开发的复杂度也越来越高。传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现

    2024年02月11日
    浏览(50)
  • 【UE 材质】模型部分透明

            材质节点如下,这里简单解释一下。首先通过“Mask”节点将\\\"Texture Coordinate\\\" 节点中的“G”通道分离出来,然后通过“if”节点进行判断,当值小于0.5时为透明,当颜色不小于5时为不透明。可以通过一个参数来控制模型透明部分的占比,这里参数设置为0.5,因此球

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包