X-Git-Url: https://git.mdrn.pl/wl-app.git/blobdiff_plain/53b27422d140022594fc241cca91c3183be57bca..48b2fe9f7c2dc3d9aeaaa6dbfb27c7da4f3235ff:/iOS/WolneLektury/Controls/ActivityIndicatorButton.swift diff --git a/iOS/WolneLektury/Controls/ActivityIndicatorButton.swift b/iOS/WolneLektury/Controls/ActivityIndicatorButton.swift new file mode 100644 index 0000000..65fe2fb --- /dev/null +++ b/iOS/WolneLektury/Controls/ActivityIndicatorButton.swift @@ -0,0 +1,61 @@ +// +// ActivityIndicatorButton.swift +// WolneLektury +// +// Created by Pawel Dabrowski on 12/06/2018. +// Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved. +// + +import UIKit + +enum ActivityIndicatorButtonState{ + case loading + case button + case hidden +} + +class ActivityIndicatorButton: UIButton { + + private var indicatorButtonState: ActivityIndicatorButtonState = .loading + + private var activityIndicatorView: UIActivityIndicatorView! + override init(frame: CGRect) { + super.init(frame: frame) + customInit() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + customInit() + } + + func customInit() { + activityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge) + activityIndicatorView.hidesWhenStopped = true + activityIndicatorView.tintColor = tintColor + activityIndicatorView.color = tintColor + + activityIndicatorView.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(activityIndicatorView) + activityIndicatorView.centerInSuperview() + setIndicatorButtonState(state: .loading) + titleLabel?.text = "" + } + + func setIndicatorButtonState(state: ActivityIndicatorButtonState){ + indicatorButtonState = state + + switch state { + case .loading: + isHidden = false + activityIndicatorView.startAnimating() + setImage(nil, for: .normal) + case .button: + isHidden = false + activityIndicatorView.stopAnimating() + setImage(#imageLiteral(resourceName: "ic_reload"), for: .normal) + case .hidden: + isHidden = true + } + } +}