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

//
// SplashScreenViewController.swift
// GMERemittance
//
// Created by gme_2 on 10/09/2018.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class SplashScreenViewController: UIViewController {
// MARK: IBOutlets
@IBOutlet weak var imageViewDotCenter: UIImageView!
@IBOutlet weak var imageViewDotLeft: UIImageView!
@IBOutlet weak var imageViewDotRight: UIImageView!
@IBOutlet weak var imageViewHomeLogo: UIImageView!
@IBOutlet weak var labelHomeDescription: UILabel!
@IBOutlet weak var constraintLeft: NSLayoutConstraint!
@IBOutlet weak var constraintRight: NSLayoutConstraint!
@IBOutlet weak var buttonLogin: UIButton!
@IBOutlet weak var buttonSignUp: UIButton!
// MARK: Properties
var counter: Int = 0
let imageDotSelected = UIImage(named: "dotSelected")
let imageDotUnselected = UIImage(named: "dotUnselected")
let imageFirst = UIImage(named: "ic_splashFirstScreen")
let imageSecond = UIImage(named: "ic_splashSecondScreen")
let imageThird = UIImage(named: "ic_splashThirdScreen")
let descriptionFirst = "Hassle free money transfer to your loved ones"
let descriptionSecond = "Connect to local community"
let descriptionThird = "Earn reward points and get surprise gifts"
var presenter: SplashScreenModuleInterface?
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
self.hideNavBar()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
}
// MARK: IBActions
@IBAction func login(_ sender: UIButton) {
self.presenter?.login()
}
@IBAction func register(_ sender: UIButton) {
self.presenter?.register()
}
// MARK: Other Functions
private func hideNavBar() {
self.navigationController?.isNavigationBarHidden = true
self.navigationController?.navigationBar.barTintColor = UIColor.init(hex: "ED1C24")
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}
private func setup() {
// all setup should be done here
hideNavBar()
setUpButtons()
imageViewDotLeft.image = UIImage(named: "dotSelected")
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(_SplashScreenViewController.handleSwipes(_:)))
leftSwipe.direction = .left
rightSwipe.direction = .right
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
// Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(_SplashScreenViewController.updateImage), userInfo: nil, repeats: true)
}
@objc func handleSwipes(_ sender: UISwipeGestureRecognizer) {
if (sender.direction == .right) {
counter = counter - 1
if counter < 0 {
counter = 2
}
}
if (sender.direction == .left) {
counter = counter + 1
if counter > 2 {
counter = 0
}
}
setImageandLabels()
}
@objc func updateImage() {
counter += 1
if counter > 2 {
counter = 0
}
setImageandLabels()
}
func setImageandLabels() {
imageViewDotLeft.image = imageDotUnselected
imageViewDotCenter.image = imageDotUnselected
imageViewDotRight.image = imageDotUnselected
switch counter {
case 0:
imageViewDotLeft.image = imageDotSelected
imageViewHomeLogo.image = imageFirst
labelHomeDescription.text = descriptionFirst
case 1:
imageViewDotCenter.image = imageDotSelected
imageViewHomeLogo.image = imageSecond
labelHomeDescription.text = descriptionSecond
case 2:
imageViewDotRight.image = imageDotSelected
imageViewHomeLogo.image = imageThird
labelHomeDescription.text = descriptionThird
default:
return
}
}
func setUpButtons() {
buttonSignUp.layer.cornerRadius = 25
buttonLogin.backgroundColor = .clear
buttonLogin.layer.cornerRadius = 25
buttonLogin.layer.borderWidth = 1
buttonLogin.layer.borderColor = UIColor.white.cgColor
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
// MARK: SplashScreenViewInterface
extension SplashScreenViewController: SplashScreenViewInterface {
}