Thanks you, here my code for RegisterView
Code Block import SwiftUI |
class RegisterView : UIView, UITextFieldDelegate { |
|
@IBOutlet weak var username : UITextField? |
|
@IBOutlet weak var password : UITextField? |
|
@IBOutlet weak var repassword : UITextField? |
|
@IBOutlet weak var email : UITextField? |
|
@IBOutlet weak var displayname : UITextField? |
|
var contentView : UIView? |
|
public static var nibName: String { |
|
return String(describing: self.self) |
|
} |
|
|
|
public static var nib: UINib { |
|
let bundle = Bundle(for: self.self) |
|
return UINib(nibName: self.nibName, bundle: bundle) |
|
} |
|
|
|
override init(frame: CGRect) { |
|
super.init(frame: frame) |
|
self.setupView() |
|
} |
|
required init?(coder : NSCoder) { |
|
super.init(coder: coder) |
|
setupView() |
|
} |
|
private func setupView () { |
|
guard let view = Self.nib.instantiate(withOwner: self, options: nil).first as? UIView else { fatalError("Error loading \(self) from nib") } |
|
addSubview(view) |
|
view.translatesAutoresizingMaskIntoConstraints = false |
|
if #available(iOS 11.0, *) { |
|
view.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 0).isActive = true |
|
view.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true |
|
view.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: 0).isActive = true |
|
view.bottomAnchor.constraint(equalTo: self.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true |
|
} |
|
self.displayname?.delegate = self |
self.email?.delegate = self |
self.username?.delegate = self |
self.password?.delegate = self |
self.repassword?.delegate = self |
super.layoutSubviews() |
} |
|
func textFieldShouldReturn(_ textField: UITextField) -> Bool { |
|
textField.resignFirstResponder() |
|
return true |
} |
|
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { |
|
textField.resignFirstResponder() |
|
return true |
|
} |
|
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { |
return true |
} |
|
public func register(username: String, email : String, displayName : String, password : String) { |
|
} |
|
} |
|
|
And here's the code for add RegisterView into parent view (I'm planning to switch between RegisterView and LoginView in parent view)
Code Block @IBAction func register(_ sender: UIButton) { |
self.processView?.showTextOnly(text: "register button clicked") |
|
|
|
if (self.registerView != nil) { |
|
self.upperView.removeChildView() |
|
self.upperView.addSubview(registerView!) |
|
return |
|
} |
|
self.registerView = RegisterView(); |
|
self.registerView?.frame = upperView.bounds |
|
self.registerView?.autoresizingMask = [.flexibleWidth, .flexibleHeight] |
|
self.upperView.addSubview(registerView!) |
|
self.registerView?.center = CGPoint(x : upperView.frame.width / 2, |
|
y : upperView.frame.height / 2) |
|
} |