注册登录的UI

This commit is contained in:
fengshuo
2024-02-22 19:59:38 +08:00
parent dc62dcf4b8
commit 990dfebf8a
22 changed files with 533 additions and 10 deletions

View File

@@ -18,6 +18,9 @@
E86A43BF2B8620C40084C04D /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43BE2B8620C40084C04D /* Utils.swift */; };
E86A43C32B8628AF0084C04D /* BaeTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43C22B8628AF0084C04D /* BaeTabBarViewController.swift */; };
E86A43C62B862CC70084C04D /* UIImage+.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43C52B862CC70084C04D /* UIImage+.swift */; };
E86A43C82B8743EA0084C04D /* AuthFillDataVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43C72B8743EA0084C04D /* AuthFillDataVC.swift */; };
E86A43CB2B874C6F0084C04D /* AuthPrivacyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43CA2B874C6F0084C04D /* AuthPrivacyView.swift */; };
E86A43CD2B874C8E0084C04D /* BaseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E86A43CC2B874C8E0084C04D /* BaseView.swift */; };
E884E85F2B6900C500ADE6EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E884E85E2B6900C500ADE6EE /* AppDelegate.swift */; };
E884E8662B6900C500ADE6EE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E884E8642B6900C500ADE6EE /* Main.storyboard */; };
E884E8682B6900C600ADE6EE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E884E8672B6900C600ADE6EE /* Assets.xcassets */; };
@@ -48,6 +51,9 @@
E86A43BE2B8620C40084C04D /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
E86A43C22B8628AF0084C04D /* BaeTabBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaeTabBarViewController.swift; sourceTree = "<group>"; };
E86A43C52B862CC70084C04D /* UIImage+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+.swift"; sourceTree = "<group>"; };
E86A43C72B8743EA0084C04D /* AuthFillDataVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthFillDataVC.swift; sourceTree = "<group>"; };
E86A43CA2B874C6F0084C04D /* AuthPrivacyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthPrivacyView.swift; sourceTree = "<group>"; };
E86A43CC2B874C8E0084C04D /* BaseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseView.swift; sourceTree = "<group>"; };
E884E85B2B6900C500ADE6EE /* yinmeng-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "yinmeng-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; };
E884E85E2B6900C500ADE6EE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
E884E8652B6900C500ADE6EE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
@@ -110,6 +116,7 @@
E86A43A92B85DFA90084C04D /* BaseViewController.swift */,
E86A43AF2B85E11B0084C04D /* BaseNavigationViewController.swift */,
E86A43C22B8628AF0084C04D /* BaeTabBarViewController.swift */,
E86A43CC2B874C8E0084C04D /* BaseView.swift */,
);
path = ViewController;
sourceTree = "<group>";
@@ -142,6 +149,7 @@
E86A43B22B85E2170084C04D /* Auth */ = {
isa = PBXGroup;
children = (
E86A43C92B874C5C0084C04D /* View */,
E86A43B42B85E2340084C04D /* VM */,
E86A43B32B85E22A0084C04D /* VC */,
);
@@ -154,6 +162,7 @@
E86A43B72B85F0B80084C04D /* AuthLaunchVC.swift */,
E86A43B92B85F1360084C04D /* AuthLoginVC.swift */,
E86A43BB2B85FA640084C04D /* AuthForgetVC.swift */,
E86A43C72B8743EA0084C04D /* AuthFillDataVC.swift */,
);
path = VC;
sourceTree = "<group>";
@@ -182,6 +191,14 @@
path = UIImage;
sourceTree = "<group>";
};
E86A43C92B874C5C0084C04D /* View */ = {
isa = PBXGroup;
children = (
E86A43CA2B874C6F0084C04D /* AuthPrivacyView.swift */,
);
path = View;
sourceTree = "<group>";
};
E884E8522B6900C500ADE6EE = {
isa = PBXGroup;
children = (
@@ -369,9 +386,12 @@
E884E85F2B6900C500ADE6EE /* AppDelegate.swift in Sources */,
E897B8E62B6C941400F884C2 /* YMPluginSubType.swift in Sources */,
E86A43B82B85F0B80084C04D /* AuthLaunchVC.swift in Sources */,
E86A43C82B8743EA0084C04D /* AuthFillDataVC.swift in Sources */,
E897B8DA2B6C903600F884C2 /* NetworkRequest.swift in Sources */,
E86A43CD2B874C8E0084C04D /* BaseView.swift in Sources */,
E897B8D82B6C8D1600F884C2 /* YMNetworkAPI.swift in Sources */,
E86A43C62B862CC70084C04D /* UIImage+.swift in Sources */,
E86A43CB2B874C6F0084C04D /* AuthPrivacyView.swift in Sources */,
E897B8E42B6C93C700F884C2 /* YMRequestConfig.swift in Sources */,
E86A43BF2B8620C40084C04D /* Utils.swift in Sources */,
E86A43BA2B85F1360084C04D /* AuthLoginVC.swift in Sources */,

View File

@@ -16,7 +16,7 @@ var window: UIWindow?
UIApplication.shared.applicationIconBadgeNumber = 0
self.window = UIWindow.init(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
self.window?.rootViewController = AuthLoginVC()
self.window?.rootViewController = BaseNavigationViewController(rootViewController:AuthLoginVC())
return true
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "auth_login_female_normal@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "auth_login_female_normal@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "auth_login_female_select@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "auth_login_female_select@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "auth_login_male_normal@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "auth_login_male_normal@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "auth_login_male_select@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "auth_login_male_select@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -14,7 +14,7 @@ class BaseNavigationViewController: UINavigationController, UIGestureRecognizerD
if children.count > 0 {
viewController.hidesBottomBarWhenPushed = true
let mai_image22 = UIImage.init(named: "mai_common_back")!
let mai_image22 = UIImage.init(named: "public_back_white")!
let mai_backItem33 = UIBarButtonItem.init(image:mai_image22, style: .plain, target: self, action: #selector(backAction))
viewController.navigationItem.leftBarButtonItem = mai_backItem33
@@ -25,7 +25,7 @@ class BaseNavigationViewController: UINavigationController, UIGestureRecognizerD
override var preferredStatusBarStyle: UIStatusBarStyle
{
return .darkContent
return .lightContent
}
override func viewDidLoad() {

View File

@@ -0,0 +1,25 @@
//
// BaseView.swift
// yinmeng-ios
//
// Created by MaiMang on 2024/2/22.
//
import UIKit
class BaseView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
loadSubViews()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func loadSubViews() {
}
}

View File

@@ -23,7 +23,7 @@ class BaseViewController: UIViewController {
override var preferredStatusBarStyle: UIStatusBarStyle {
.darkContent
.lightContent
}
override func viewDidLoad() {

View File

@@ -0,0 +1,170 @@
//
// AuthFillDataVC.swift
// yinmeng-ios
//
// Created by MaiMang on 2024/2/22.
//
import UIKit
class AuthFillDataVC: BaseViewController, HiddenNavigationBarProtocol {
override func viewDidLoad() {
super.viewDidLoad()
loadSubViews()
}
private func loadSubViews() {
view.addSubview(backImgView)
view.addSubview(backBtn)
view.addSubview(titleLb)
view.addSubview(stackView)
view.addSubview(nickTextFiled)
view.addSubview(confirmBtn)
stackView.addArrangedSubview(maleBtn)
stackView.addArrangedSubview(femaleBtn)
backImgView.snp.makeConstraints { make in
make.edges.equalTo(view)
}
backBtn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: 20, height: 20))
make.left.equalTo(view).offset(16)
make.top.equalTo(view).offset(StatusBarHeight + 12)
}
titleLb.snp.makeConstraints { make in
make.centerX.equalTo(view)
make.centerY.equalTo(backBtn)
}
stackView.snp.makeConstraints { make in
make.centerX.equalTo(view)
make.height.equalTo(88)
make.top.equalTo(view).offset(StatusBarHeight + 94)
}
femaleBtn.snp.makeConstraints { make in
make.width.equalTo(140)
}
nickTextFiled.snp.makeConstraints { make in
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
make.top.equalTo(stackView.snp.bottom).offset(32)
}
confirmBtn.snp.makeConstraints { make in
make.top.equalTo(nickTextFiled.snp.bottom).offset(40)
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
}
}
private lazy var backImgView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "auth_login_bg")
imageView.isUserInteractionEnabled = true
imageView.layer.masksToBounds = true
imageView.contentMode = .scaleAspectFill
return imageView
}()
private lazy var backBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "public_back_white"), for: .normal)
button.setImage(UIImage(named: "public_back_white"), for: .selected)
button.addTarget(self, action: #selector(backBtnAction), for: .touchUpInside)
return button
}()
private lazy var titleLb: UILabel = {
let label = UILabel()
label.textColor = .white
label.textAlignment = .center
label.text = "填写资料"
label.font = UIFont.systemFont(ofSize: 18, weight: .medium)
return label
}()
private lazy var stackView: UIStackView = {
let stackView = UIStackView()
stackView.distribution = .fillEqually
stackView.axis = .horizontal
stackView.alignment = .fill
stackView.spacing = 23
return stackView
}()
private lazy var femaleBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "auth_login_female_normal"), for: .normal)
button.setImage(UIImage(named: "auth_login_female_select"), for: .selected)
button.addTarget(self, action: #selector(femaleBtnAction), for: .touchUpInside)
return button
}()
private lazy var maleBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "auth_login_male_normal"), for: .normal)
button.setImage(UIImage(named: "auth_login_male_select"), for: .selected)
button.addTarget(self, action: #selector(maleBtnAction), for: .touchUpInside)
return button
}()
lazy var nickTextFiled:UITextField = {
let view = UITextField()
view.textColor = .firstText
view.font = UIFont.systemFont(ofSize: 16)
view.leftViewMode = .always
let leftView = UIView()
leftView.frame = CGRect(x: 0, y: 0, width: 20, height: 52)
leftView.backgroundColor = .clear
view.leftView = leftView
let attribute = NSMutableAttributedString(string: "请输入昵称", attributes: [NSAttributedString.Key.font:UIFont.systemFont(ofSize: 16), NSAttributedString.Key.foregroundColor:UIColor.placeholderText])
view.attributedPlaceholder = attribute
view.backgroundColor = .white
view.layer.masksToBounds = true
view.layer.cornerRadius = 26
view.addTarget(self, action: #selector(nickTextFiledDidChange), for: .editingChanged)
return view
}()
private lazy var confirmBtn: UIButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage.gradient(hexsString: ["#FF60FD", "#8974FF", "#69EBFF"]), for: .normal)
button.setImage(UIImage(named: "auth_login_confirm"), for: .normal)
button.layer.masksToBounds = true
button.layer.cornerRadius = 26
button.addTarget(self, action: #selector(confirmBtnAction), for: .touchUpInside)
return button
}()
@objc func femaleBtnAction() {
self.femaleBtn.isSelected = true
self.maleBtn.isSelected = false
}
@objc func maleBtnAction() {
self.maleBtn.isSelected = true
self.femaleBtn.isSelected = false
}
@objc func backBtnAction() {
self.navigationController?.popViewController(animated: true)
}
@objc func nickTextFiledDidChange(_ textField: UITextField) {
}
@objc func confirmBtnAction() {
}
}

View File

@@ -7,8 +7,215 @@
import UIKit
class AuthForgetVC: BaseViewController {
class AuthForgetVC: BaseViewController, HiddenNavigationBarProtocol {
override func viewDidLoad() {
super.viewDidLoad()
loadSubViews()
}
private func loadSubViews() {
view.addSubview(backImgView)
view.addSubview(backBtn)
view.addSubview(titleLb)
view.addSubview(phoneTextFiled)
view.addSubview(codeView)
view.addSubview(pwdTextFiled)
view.addSubview(confirmBtn)
codeView.addSubview(codeTextFiled)
codeView.addSubview(sepView)
codeView.addSubview(getCodeBtn)
backImgView.snp.makeConstraints { make in
make.edges.equalTo(view)
}
backBtn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: 20, height: 20))
make.left.equalTo(view).offset(16)
make.top.equalTo(view).offset(StatusBarHeight + 12)
}
titleLb.snp.makeConstraints { make in
make.centerX.equalTo(view)
make.centerY.equalTo(backBtn)
}
phoneTextFiled.snp.makeConstraints { make in
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
make.top.equalTo(view).offset(StatusBarHeight + 94)
}
codeView.snp.makeConstraints { make in
make.left.right.height.equalTo(phoneTextFiled)
make.top.equalTo(phoneTextFiled.snp.bottom).offset(20)
}
codeTextFiled.snp.makeConstraints { make in
make.left.top.bottom.equalTo(codeView)
make.right.equalTo(sepView.snp.left)
}
getCodeBtn.snp.makeConstraints { make in
make.right.equalTo(codeView).offset(-18)
make.top.bottom.equalTo(codeView)
}
sepView.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: 1, height: 20))
make.centerY.equalTo(codeView)
make.right.equalTo(getCodeBtn.snp.left).offset(-16)
}
pwdTextFiled.snp.makeConstraints { make in
make.left.right.height.equalTo(phoneTextFiled)
make.top.equalTo(codeView.snp.bottom).offset(20)
}
confirmBtn.snp.makeConstraints { make in
make.left.right.equalTo(view).inset(36)
make.height.equalTo(52)
make.top.equalTo(pwdTextFiled.snp.bottom).offset(40)
}
}
private lazy var backImgView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "auth_login_bg")
imageView.isUserInteractionEnabled = true
imageView.layer.masksToBounds = true
imageView.contentMode = .scaleAspectFill
return imageView
}()
private lazy var backBtn: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "public_back_white"), for: .normal)
button.setImage(UIImage(named: "public_back_white"), for: .selected)
button.addTarget(self, action: #selector(backBtnAction), for: .touchUpInside)
return button
}()
private lazy var titleLb: UILabel = {
let label = UILabel()
label.textColor = .white
label.textAlignment = .center
label.text = "忘记密码"
label.font = UIFont.systemFont(ofSize: 18, weight: .medium)
return label
}()
lazy var phoneTextFiled:UITextField = {
let view = UITextField()
view.textColor = .firstText
view.font = UIFont.systemFont(ofSize: 16)
view.leftViewMode = .always
let leftView = UIView()
leftView.frame = CGRect(x: 0, y: 0, width: 20, height: 52)
leftView.backgroundColor = .clear
view.leftView = leftView
let attribute = NSMutableAttributedString(string: "请输入手机号", attributes: [NSAttributedString.Key.font:UIFont.systemFont(ofSize: 16), NSAttributedString.Key.foregroundColor:UIColor.placeholderText])
view.attributedPlaceholder = attribute
view.keyboardType = .numberPad
view.backgroundColor = .white
view.layer.masksToBounds = true
view.layer.cornerRadius = 26
view.addTarget(self, action: #selector(phoneTextFiledDidChange), for: .editingChanged)
return view
}()
private lazy var codeView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.masksToBounds = true
view.layer.cornerRadius = 26
return view
}()
lazy var codeTextFiled:UITextField = {
let view = UITextField()
view.textColor = .firstText
view.font = UIFont.systemFont(ofSize: 16)
view.leftViewMode = .always
let leftView = UIView()
leftView.frame = CGRect(x: 0, y: 0, width: 20, height: 52)
leftView.backgroundColor = .clear
view.leftView = leftView
let attribute = NSMutableAttributedString(string: "请输入验证码", attributes: [NSAttributedString.Key.font:UIFont.systemFont(ofSize: 16), NSAttributedString.Key.foregroundColor:UIColor.placeholderText])
view.attributedPlaceholder = attribute
view.addTarget(self, action: #selector(codeTextFiledDidChange), for: .editingChanged)
return view
}()
private lazy var sepView: UIView = {
let view = UIView()
view.backgroundColor = UIColor.sepLine
return view
}()
private lazy var getCodeBtn: UIButton = {
let button = UIButton(type: .custom)
button.setTitle("获取验证码", for: .normal)
button.setTitleColor(ThemeColor(hexStr: "#9552FF"), for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .regular)
button.addTarget(self, action: #selector(getCodeBtnAction), for: .touchUpInside)
return button
}()
lazy var pwdTextFiled:UITextField = {
let view = UITextField()
view.textColor = .firstText
view.font = UIFont.systemFont(ofSize: 16)
view.leftViewMode = .always
let leftView = UIView()
leftView.frame = CGRect(x: 0, y: 0, width: 20, height: 52)
leftView.backgroundColor = .clear
view.leftView = leftView
let attribute = NSMutableAttributedString(string: "请输入密码6-16字符", attributes: [NSAttributedString.Key.font:UIFont.systemFont(ofSize: 16), NSAttributedString.Key.foregroundColor:UIColor.placeholderText])
view.attributedPlaceholder = attribute
view.backgroundColor = .white
view.layer.masksToBounds = true
view.layer.cornerRadius = 26
view.addTarget(self, action: #selector(pwdTextFiledDidChange), for: .editingChanged)
return view
}()
private lazy var confirmBtn: UIButton = {
let button = UIButton(type: .custom)
button.setBackgroundImage(UIImage.gradient(hexsString: ["#FF60FD", "#8974FF", "#69EBFF"]), for: .normal)
button.setImage(UIImage(named: "auth_login_confirm"), for: .normal)
button.layer.masksToBounds = true
button.layer.cornerRadius = 26
button.addTarget(self, action: #selector(confirmBtnAction), for: .touchUpInside)
return button
}()
@objc func backBtnAction() {
self.navigationController?.popViewController(animated: true)
}
@objc func phoneTextFiledDidChange(_ textField: UITextField) {
}
@objc func pwdTextFiledDidChange(_ textField: UITextField) {
}
@objc func codeTextFiledDidChange(_ textField: UITextField) {
}
@objc func getCodeBtnAction() {
}
@objc func confirmBtnAction() {
}
}

View File

@@ -274,7 +274,7 @@ class AuthLoginVC: BaseViewController, HiddenNavigationBarProtocol {
private lazy var idLoginView: UIView = {
let view = UIView()
view.backgroundColor = .red
view.backgroundColor = .clear
view.isHidden = true
return view
}()
@@ -324,9 +324,6 @@ class AuthLoginVC: BaseViewController, HiddenNavigationBarProtocol {
button.setTitle("忘记密码?", for: .normal)
button.setTitleColor(ThemeColor(hexStr: "#FFFFFF", alpha: 0.8), for: .normal)
button.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium)
button.layer.masksToBounds = true
button.layer.cornerRadius = 26
button.isEnabled = false
button.addTarget(self, action: #selector(forgetBtnAction), for: .touchUpInside)
return button
}()
@@ -385,7 +382,7 @@ extension AuthLoginVC {
}
@objc func forgetBtnAction() {
self.navigationController?.pushViewController(AuthForgetVC(), animated: true)
self.navigationController?.pushViewController(AuthFillDataVC(), animated: true)
}
@objc func phoneTextFiledDidChange(_ textField: UITextField) {

View File

@@ -0,0 +1,16 @@
//
// AuthPrivacyView.swift
// yinmeng-ios
//
// Created by MaiMang on 2024/2/22.
//
import UIKit
class AuthPrivacyView: BaseView {
override func loadSubViews() {
}
}