// // CommonViewEmptyContainer.swift // Wallet // // Created by Igor on 04.03.2021. // Copyright © 2021 AM. All rights reserved. // import UIKit class CommonViewEmptyContainer: UIView { @IBOutlet private weak var contentView: UIView! @IBOutlet weak var loadingView: UIView? let emptyView = CommonViewEmpty() var isEmpty = false { didSet { update() } } var isLoading = false { didSet { update() } } override init(frame: CGRect) { super.init(frame: frame) setup() } required init?(coder: NSCoder) { super.init(coder: coder) setup() } private func setup() { emptyView.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height) emptyView.autoresizingMask = [.flexibleWidth, .flexibleHeight] emptyView.translatesAutoresizingMaskIntoConstraints = true emptyView.alpha = 0 addSubview(emptyView) } @IBInspectable var image: UIImage? { get { emptyView.image } set { emptyView.image = newValue } } @IBInspectable var title: String? { get { emptyView.title } set { emptyView.title = newValue } } @IBInspectable var text: String? { get { emptyView.text } set { emptyView.text = newValue } } var action: CommonMenuAction? { get { emptyView.action } set { emptyView.action = newValue } } private func update() { bringSubviewToFront(emptyView) if isLoading { Loader.show(in: loadingView ?? self) UIView.animate(withDuration: Animation.slow) { self.emptyView.alpha = 0 self.contentView.alpha = 0 } } else { Loader.hide(in: loadingView ?? self) UIView.animate(withDuration: Animation.slow) { self.emptyView.alpha = self.isEmpty ? 1 : 0 self.contentView.alpha = self.isEmpty ? 0 : 1 } } } }