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.

170 lines
5.1 KiB

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. self.navigationController?.navigationBar.barTintColor = UIColor.init(hex: "ED1C24")
  56. self.navigationController?.navigationBar.isTranslucent = false
  57. self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
  58. self.navigationController?.navigationBar.shadowImage = UIImage()
  59. }
  60. private func setup() {
  61. // all setup should be done here
  62. hideNavBar()
  63. setUpButtons()
  64. imageViewDotLeft.image = UIImage(named: "dotSelected")
  65. let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
  66. let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
  67. leftSwipe.direction = .left
  68. rightSwipe.direction = .right
  69. view.addGestureRecognizer(leftSwipe)
  70. view.addGestureRecognizer(rightSwipe)
  71. // Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(_SplashScreenViewController.updateImage), userInfo: nil, repeats: true)
  72. }
  73. @objc func handleSwipes(_ sender: UISwipeGestureRecognizer) {
  74. if (sender.direction == .right) {
  75. counter = counter - 1
  76. if counter < 0 {
  77. counter = 2
  78. }
  79. }
  80. if (sender.direction == .left) {
  81. counter = counter + 1
  82. if counter > 2 {
  83. counter = 0
  84. }
  85. }
  86. setImageandLabels()
  87. }
  88. @objc func updateImage() {
  89. counter += 1
  90. if counter > 2 {
  91. counter = 0
  92. }
  93. setImageandLabels()
  94. }
  95. func setImageandLabels() {
  96. imageViewDotLeft.image = imageDotUnselected
  97. imageViewDotCenter.image = imageDotUnselected
  98. imageViewDotRight.image = imageDotUnselected
  99. switch counter {
  100. case 0:
  101. imageViewDotLeft.image = imageDotSelected
  102. imageViewHomeLogo.image = imageFirst
  103. labelHomeDescription.text = descriptionFirst
  104. case 1:
  105. imageViewDotCenter.image = imageDotSelected
  106. imageViewHomeLogo.image = imageSecond
  107. labelHomeDescription.text = descriptionSecond
  108. case 2:
  109. imageViewDotRight.image = imageDotSelected
  110. imageViewHomeLogo.image = imageThird
  111. labelHomeDescription.text = descriptionThird
  112. default:
  113. return
  114. }
  115. }
  116. func setUpButtons() {
  117. buttonSignUp.layer.cornerRadius = 25
  118. buttonLogin.backgroundColor = .clear
  119. buttonLogin.layer.cornerRadius = 25
  120. buttonLogin.layer.borderWidth = 1
  121. buttonLogin.layer.borderColor = UIColor.white.cgColor
  122. }
  123. override func didReceiveMemoryWarning() {
  124. super.didReceiveMemoryWarning()
  125. }
  126. }
  127. // MARK: SplashScreenViewInterface
  128. extension SplashScreenViewController: SplashScreenViewInterface {
  129. }