Swift 简单易用的弹框提示

本文介绍了一个简单的Swift弹框提示视图ZFSTosatView,该视图可以根据文本的高度自动调整位置和弹框大小,适用于iOS应用开发中快速实现自定义提示框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是封装的一个简单,易用,代码比较少的swift弹框提示,能根据文本高度,自行调整位置和弹框高度



//

//  ZFSTosatView.swift

//  swiftStydy1

//

//  Created by HandsomeC on 17/6/15.

//  Copyright © 2017 赵发生. All rights reserved.

//


import UIKit


class ZFSTosatView: UIView {


    static func showToast(message:String,fromeSuperView:UIView){

        

        if let label = fromeSuperView.viewWithTag(11111) {//判断是否存在过,每次添加之前删除之前的label

            label.removeFromSuperview()

        }

        

        let titleLabel = UILabel()

        titleLabel.tag = 11111

        titleLabel.backgroundColor = UIColor.black

        titleLabel.font = UIFont.systemFont(ofSize: 15)

        titleLabel.textAlignment = NSTextAlignment.center

        titleLabel.textColor = UIColor.white

        titleLabel.layer.cornerRadius = 5

        titleLabel.layer.masksToBounds = true

        titleLabel.numberOfLines = 0

        titleLabel.text = message

        

        let stringWidth = ZFSTools.getStringWidth(string: message, font: 15, height: 40)

        //只有一行文字的时候

        if stringWidth < ZFSTools.SCREENWIDTH() - 30{

            titleLabel.frame = CGRect(x:0,y: 0,width: stringWidth+10,height:40)

        }else{

            //ZFSTools.getStringHeight  ZFSTools.SCREENWIDTH()是计算文本高度和屏幕宽度的方法,自行封装

            titleLabel.frame = CGRect(x:0,y: 0,width: ZFSTools.SCREENWIDTH() - 30,height:ZFSTools.getStringHeight(string: message, font: 15, width: ZFSTools.SCREENWIDTH() - 30)+10)

        }

        titleLabel.center = fromeSuperView.center

        

        UIView.animate(withDuration: 0.5, animations: {

            fromeSuperView.addSubview(titleLabel)

            

        },  completion: {(b:Bool) -> Void in

            DispatchQueue.main.asyncAfter(deadline: .now() + 1) {//弹出以后一秒后自行消失

                titleLabel.removeFromSuperview()

            }

        })


        

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值