You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
4.8 KiB

6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // SplashScreenViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 10/09/2018.
  6. //Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class SplashScreenViewController: UIViewController {
  10. // MARK: IBOutlets
  11. @IBOutlet weak var imageViewDotCenter: UIImageView!
  12. @IBOutlet weak var imageViewDotLeft: UIImageView!
  13. @IBOutlet weak var imageViewDotRight: UIImageView!
  14. @IBOutlet weak var imageViewHomeLogo: UIImageView!
  15. @IBOutlet weak var labelHomeDescription: UILabel!
  16. @IBOutlet weak var constraintLeft: NSLayoutConstraint!
  17. @IBOutlet weak var constraintRight: NSLayoutConstraint!
  18. @IBOutlet weak var buttonLogin: UIButton!
  19. @IBOutlet weak var buttonSignUp: UIButton!
  20. // MARK: Properties
  21. var counter: Int = 0
  22. let imageDotSelected = UIImage(named: "dotSelected")
  23. let imageDotUnselected = UIImage(named: "dotUnselected")
  24. let imageFirst = UIImage(named: "ic_splashFirstScreen")
  25. let imageSecond = UIImage(named: "ic_splashSecondScreen")
  26. let imageThird = UIImage(named: "ic_splashThirdScreen")
  27. let descriptionFirst = "Hassle free money transfer to your loved ones"
  28. let descriptionSecond = "Connect to local community"
  29. let descriptionThird = "Earn reward points and get surprise gifts"
  30. var presenter: SplashScreenModuleInterface?
  31. // MARK: VC's Life cycle
  32. override func viewDidLoad() {
  33. super.viewDidLoad()
  34. self.setup()
  35. }
  36. override func viewWillAppear(_ animated: Bool) {
  37. super.viewWillDisappear(animated)
  38. self.navigationItem.title = ""
  39. self.hideNavBar()
  40. }
  41. override func viewWillDisappear(_ animated: Bool) {
  42. super.viewWillDisappear(animated)
  43. self.navigationItem.title = ""
  44. }
  45. // MARK: IBActions
  46. @IBAction func login(_ sender: UIButton) {
  47. self.presenter?.login()
  48. }
  49. @IBAction func register(_ sender: UIButton) {
  50. self.presenter?.register()
  51. }
  52. // MARK: Other Functions
  53. private func hideNavBar() {
  54. self.navigationController?.isNavigationBarHidden = true
  55. }
  56. private func setup() {
  57. // all setup should be done here
  58. hideNavBar()
  59. setUpButtons()
  60. imageViewDotLeft.image = UIImage(named: "dotSelected")
  61. let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
  62. let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
  63. leftSwipe.direction = .left
  64. rightSwipe.direction = .right
  65. view.addGestureRecognizer(leftSwipe)
  66. view.addGestureRecognizer(rightSwipe)
  67. Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(_SplashScreenViewController.updateImage), userInfo: nil, repeats: true)
  68. }
  69. @objc func handleSwipes(_ sender: UISwipeGestureRecognizer) {
  70. if (sender.direction == .right) {
  71. counter = counter - 1
  72. if counter < 0 {
  73. counter = 2
  74. }
  75. }
  76. if (sender.direction == .left) {
  77. counter = counter + 1
  78. if counter > 2 {
  79. counter = 0
  80. }
  81. }
  82. setImageandLabels()
  83. }
  84. @objc func updateImage() {
  85. counter += 1
  86. if counter > 2 {
  87. counter = 0
  88. }
  89. setImageandLabels()
  90. }
  91. func setImageandLabels() {
  92. imageViewDotLeft.image = imageDotUnselected
  93. imageViewDotCenter.image = imageDotUnselected
  94. imageViewDotRight.image = imageDotUnselected
  95. switch counter {
  96. case 0:
  97. imageViewDotLeft.image = imageDotSelected
  98. imageViewHomeLogo.image = imageFirst
  99. labelHomeDescription.text = descriptionFirst
  100. case 1:
  101. imageViewDotCenter.image = imageDotSelected
  102. imageViewHomeLogo.image = imageSecond
  103. labelHomeDescription.text = descriptionSecond
  104. case 2:
  105. imageViewDotRight.image = imageDotSelected
  106. imageViewHomeLogo.image = imageThird
  107. labelHomeDescription.text = descriptionThird
  108. default:
  109. return
  110. }
  111. }
  112. func setUpButtons() {
  113. buttonSignUp.layer.cornerRadius = 25
  114. buttonLogin.backgroundColor = .clear
  115. buttonLogin.layer.cornerRadius = 25
  116. buttonLogin.layer.borderWidth = 1
  117. buttonLogin.layer.borderColor = UIColor.white.cgColor
  118. }
  119. override func didReceiveMemoryWarning() {
  120. super.didReceiveMemoryWarning()
  121. }
  122. }
  123. // MARK: SplashScreenViewInterface
  124. extension SplashScreenViewController: SplashScreenViewInterface {
  125. }