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.
 
 
 
 

119 lines
3.3 KiB

//
// GMEAlertViewController.swift
// GME Remit
//
// Created by InKwon Devik Kim on 02/07/2019.
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class GMEAlertViewController: UIViewController {
@IBOutlet private weak var titleLabel: UILabel!
@IBOutlet private weak var messageLabel: UILabel!
@IBOutlet private weak var rightButton: UIButton!
@IBOutlet private weak var leftButton: UIButton!
@IBOutlet private weak var mainView: UIView!
@IBOutlet private weak var transParentView: UIView!
@IBOutlet private weak var checkMarkView: CheckMark!
@IBOutlet private weak var checkMarkContainerView: UIView!
private var rightButtonAction: (() -> Void)?
private var leftButtonAction: (() -> Void)?
private var titleText: String?
private var messageText: String?
private var rightButtonTitle: String?
private var leftButtonTitle: String?
private var type: AlertType = .normal
private let impact = UIImpactFeedbackGenerator()
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
init(
type: AlertType = .normal,
title: String? = "Alert",
message: String? = nil,
rightButtonTitle: String? = nil,
leftButtonTitle: String? = nil,
rightButtonAction: (() -> Void)? = nil,
leftButtonAction: (() -> Void)? = nil
) {
super.init(nibName: "GMEAlertViewController", bundle: nil)
self.type = type
self.titleText = title
self.messageText = message
self.rightButtonTitle = rightButtonTitle
self.leftButtonTitle = leftButtonTitle
self.rightButtonAction = rightButtonAction
self.leftButtonAction = leftButtonAction
modalPresentationStyle = .overFullScreen
modalTransitionStyle = .crossDissolve
}
override func viewDidLoad() {
super.viewDidLoad()
mainView.layer.cornerRadius = 5
titleLabel.text = titleText
messageLabel.text = messageText
rightButton.setTitle(rightButtonTitle, for: .normal)
leftButton.setTitle(leftButtonTitle, for: .normal)
if leftButtonTitle == nil {
leftButton.isEnabled = false
leftButton.isHidden = true
}
titleLabel.textColor = .themeRed
rightButton.backgroundColor = .themeRed
transParentView.backgroundColor = .themeBackgroundGray
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
impact.impactOccurred()
mainView.popUpBouncy()
switch type {
case .normal:
checkMarkContainerView.isHidden = true
case .error:
checkMarkContainerView.isHidden = false
self.checkMarkView.animate(animationType: .error)
case .success:
checkMarkContainerView.isHidden = false
self.checkMarkView.animate(animationType: .success)
case .warning:
checkMarkContainerView.isHidden = false
self.checkMarkView.animate(animationType: .warning)
}
}
@IBAction func touchRightButton(_ sender: UIButton) {
self.dismiss(animated: false) {
self.rightButtonAction?()
}
}
@IBAction func touchLeftButton(_ sender: UIButton) {
self.dismiss(animated: false) {
self.leftButtonAction?()
}
}
}