|
|
@ -15,8 +15,19 @@ class LoginViewController: UIViewController { |
|
|
|
@IBOutlet weak var userNameTextField: UITextField! |
|
|
|
@IBOutlet weak var passwordTextField: UITextField! |
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
// views |
|
|
|
@IBOutlet weak var backgroundTextfieldsView: UIView! |
|
|
|
@IBOutlet weak var userIdBackgroundView: UIView! |
|
|
|
@IBOutlet weak var passwordBackgroundView: UIView! |
|
|
|
@IBOutlet weak var headerTitle: UILabel! |
|
|
|
@IBOutlet weak var subtitle: UILabel! |
|
|
|
@IBOutlet weak var forgotPasswordView: UIView! |
|
|
|
@IBOutlet weak var logoImageView: UIImageView! |
|
|
|
@IBOutlet weak var loginButton: UIButton! |
|
|
|
|
|
|
|
|
|
|
|
// MARK: Properties |
|
|
|
|
|
|
|
var presenter: LoginModuleInterface? |
|
|
|
|
|
|
|
|
|
|
@ -51,6 +62,65 @@ class LoginViewController: UIViewController { |
|
|
|
private func setup() { |
|
|
|
// all setup should be done here |
|
|
|
setupNavBar() |
|
|
|
setupInitialPositionsOfviews() |
|
|
|
animateViews() |
|
|
|
} |
|
|
|
|
|
|
|
private func setupInitialPositionsOfviews() { |
|
|
|
self.userIdBackgroundView.center.x -= self.view.bounds.width |
|
|
|
self.passwordBackgroundView.center.x -= self.view.bounds.width |
|
|
|
self.loginButton.transform = CGAffineTransform.init(scaleX: 0, y: 1) |
|
|
|
self.headerTitle.alpha = 0 |
|
|
|
self.headerTitle.center.y -= 200 |
|
|
|
self.subtitle.alpha = 0 |
|
|
|
self.forgotPasswordView.alpha = 0 |
|
|
|
self.logoImageView.center.y += (self.logoImageView.bounds.height + 20) |
|
|
|
self.loginButton.setTitle("", for: UIControlState.normal) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private func animateViews() { |
|
|
|
// user id |
|
|
|
UIView.animate(withDuration: 0.5, animations: { |
|
|
|
self.userIdBackgroundView.center.x += self.view.bounds.width |
|
|
|
}) |
|
|
|
|
|
|
|
// password |
|
|
|
UIView.animate(withDuration: 0.5, delay: 0.3, options: [], animations: { |
|
|
|
self.passwordBackgroundView.center.x += self.view.bounds.width |
|
|
|
}, completion: nil) |
|
|
|
|
|
|
|
// login button |
|
|
|
UIView.animate(withDuration: 0.5, delay: 0.4, options: [], animations: { |
|
|
|
self.loginButton.transform = CGAffineTransform.identity |
|
|
|
}, completion: { (_) in |
|
|
|
self.loginButton.setTitle("Login", for: UIControlState.normal) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
// subtitle |
|
|
|
UIView.animate(withDuration: 0.5, delay: 0.7, options: [], animations: { |
|
|
|
self.subtitle.alpha = 1 |
|
|
|
}, completion: nil) |
|
|
|
|
|
|
|
// forgot password |
|
|
|
UIView.animate(withDuration: 0.5, delay: 0.9, options: [], animations: { |
|
|
|
self.forgotPasswordView.alpha = 1 |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// header title |
|
|
|
// logoimageview |
|
|
|
UIView.animate(withDuration: 0.7, delay: 0, options: [], animations: { |
|
|
|
// todo |
|
|
|
self.headerTitle.alpha = 1 |
|
|
|
self.headerTitle.center.y += 200 |
|
|
|
self.logoImageView.center.y -= (self.logoImageView.bounds.height + 20) |
|
|
|
}, completion: nil) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private func setupNavBar() { |
|
|
|