验证码输入框

528 阅读1分钟

一个平平无奇的验证码输入框

自带两种风格(下划线,边框)。

截屏2024-01-30 17.57.11.png

可设置属性

    /// 样式 默认 splitline
    public var style: RBVerifyInputViewStyle = .splitline()
    
    /// 位数 默认 6 位
    public var count: Int = 6
    
    /// item宽度 不设置会根据间距自动计算
    public var itemWidth: CGFloat? 
    
    /// item高度 不设置则跟view一样高
    public var itemHeight: CGFloat?
    
    /// 文本是否加密 默认 false
    public var isSecureTextEntry: Bool = false
    
    /// 文本颜色 默认 black
    public var textColor: UIColor = .black 
    
    /// 文本字体 默认常规 16
    public var textFont: UIFont = UIFont.systemFont(ofSize: 16, weight: .regular)
    
    /// 光标颜色 默认 blue
    public var cursorColor: UIColor = .blue
    
    /// 光标宽度 默认 1.6
    public var cursorWidth: CGFloat = 1.6
    
    /// 光标高度 为空则等于字体高度
    public var cursorHeight: CGFloat?
    
    /// 验证码输入完成后的回调闭包,返回参数为验证码
    public var completeHandler: ((_ verifyCode: String) -> Void)!
    
    
    public enum RBVerifyInputViewStyle {
    /// 分割下划线
    /// lineHeight: 下划线高
    /// lineRadius:下划线圆角
    /// lineColor:下划线颜色
    /// itemSpacing:item间距
    case splitline(lineHeight: CGFloat = 1, lineRadius: CGFloat = 0.5, lineColor: UIColor = .lightGray, itemSpacing: CGFloat = 10)
    /// 分割块
    /// borderWidth: 边框宽
    /// borderRadius: 边框圆角
    /// borderColor: 边框颜色
    /// borderHighlightedColor: 边框高亮颜色
    /// itemBackgroundColor: item背景颜色
    /// itemBackgroundHighlightedColor: item背景高亮颜色
    /// itemSpacing: item间距
    /// isContinuous: 是否连续,如果是连续的话,itemSpacing将失效
    case splitblock(borderWidth: CGFloat = 1, borderRadius: CGFloat = 6, borderColor: UIColor = .lightGray, borderHighlightedColor: UIColor = .black, itemBackgroundColor: UIColor = .white, itemBackgroundHighlightedColor: UIColor = .white, itemSpacing: CGFloat = 10, isContinuous: Bool = false)
}

代码

gitee