PanModal/Sample/View Controllers/Alert (Transient)/TransientAlertViewControlle...

70 lines
1.5 KiB
Swift

//
// TransientAlertViewController.swift
// PanModal
//
// Created by Stephen Sowole on 3/1/19.
// Copyright © 2019 Detail. All rights reserved.
//
import UIKit
class TransientAlertViewController: AlertViewController {
private weak var timer: Timer?
private var countdown: Int = 5
override func viewDidLoad() {
super.viewDidLoad()
alertView.titleLabel.text = "Transient Alert"
updateMessage()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
startTimer()
}
private func startTimer() {
timer?.invalidate()
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.countdown -= 1
self?.updateMessage()
}
}
@objc func updateMessage() {
guard countdown > 0 else {
invalidateTimer()
dismiss(animated: true, completion: nil)
return
}
alertView.message.text = "Message disppears in \(countdown) seconds"
}
func invalidateTimer() {
timer?.invalidate()
}
deinit {
invalidateTimer()
}
// MARK: - Pan Modal Presentable
override var showDragIndicator: Bool {
return false
}
override var anchorModalToLongForm: Bool {
return true
}
override var panModalBackgroundColor: UIColor {
return .clear
}
override var isUserInteractionEnabled: Bool {
return false
}
}