SwiftUI3.0用户登录输入非空校验经典案例
在oc和swift里面,通过UITextFiled的代理方法,可以实施监听到用户输入的每个字符,使用正则表达式,进行判断,是否合法。在swiftUI通过
Published 发行者, ObservableObject 观察对象,实现监听绑定 TextField的输入值的变化,结合最新的Combine框架。写一个函数。
先看UI布局核心源码:
//
// ContentView.swift
// SwiftUILoginDemo
//
// Created by lujun on 2022/1/30.
//
import SwiftUI
struct ContentView: View {
@StateObject var loginVM = LoginViewModel()
var body: some View {
VStack{
VStack(alignment: .leading, spacing: 4){
ZStack{
RoundedRectangle(cornerRadius: 10)
.fill(Color.black.opacity(0.14))
RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue,lineWidth: 1)
.opacity(loginVM.userNameFaildFoucs == true ? 1 : 0)
TextField("请输入用户名",text: $loginVM.userName,onEditingChanged: {
editChange in
withAnimation {
loginVM.userNameFaildFoucs = editChange
}
})
.padding(.horizontal,20)
}
.frame( height: 35)
Text(