/
sberpay
/
AgeGate-iOS
Обзор
Документация
Войти
/
sberpay
/
AgeGate-iOS
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
develop
AgeGateSDK/Presentation/ContentVC/ContentVC.swift
82 строки
3 KB
SergeyGladkiy
[0.2.0] БДСЧ сценарий
30 июл 2026, 21:57
30 июл 2026, 21:57
cbcdfcb
Код
Авторство
О чём код?
// // ContentVC.swift // SPaySdk // // Created by Alexander Ipatov on 22.11.2022. // import UIKit /// Базовый экран шторки. Рисует «палочку» сверху и умеет показывать загрузку. class AGTContentVC: UIViewController { /// Имя экрана для логов и аналитики. var screenName: String { String(describing: type(of: self)) } @MainActor var contentContainer: AGTContentNC? { parent as? AGTContentNC } private lazy var stickView: UIView = { let view = UIView() view.backgroundColor = UIColor.textSecondary.withAlphaComponent(0.3) view.layer.cornerRadius = 2 view.translatesAutoresizingMaskIntoConstraints = false return view }() private lazy var loaderView: UIActivityIndicatorView = { let view = UIActivityIndicatorView(style: .large) view.tag = .agtLoadingTag view.translatesAutoresizingMaskIntoConstraints = false return view }() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .clear setupStick() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) SBLogger.logScreen(screenName, event: "показан") } /// Блокирует шторку целиком — например, пока идёт запрос. @MainActor func setUserInteractionsEnabled(_ value: Bool) { view.window?.viewWithTag(.agtDimmViewTag)?.isUserInteractionEnabled = value contentContainer?.view.isUserInteractionEnabled = value } @MainActor func showLoading() { guard loaderView.superview == nil else { return } view.addSubview(loaderView) NSLayoutConstraint.activate([ loaderView.centerXAnchor.constraint(equalTo: view.centerXAnchor), loaderView.centerYAnchor.constraint(equalTo: view.centerYAnchor) ]) loaderView.startAnimating() } @MainActor func hideLoading() { loaderView.stopAnimating() loaderView.removeFromSuperview() } func setStickHidden(_ hidden: Bool) { stickView.isHidden = hidden } private func setupStick() { view.addSubview(stickView) NSLayoutConstraint.activate([ stickView.topAnchor.constraint(equalTo: view.topAnchor, constant: 8), stickView.centerXAnchor.constraint(equalTo: view.centerXAnchor), stickView.widthAnchor.constraint(equalToConstant: 38), stickView.heightAnchor.constraint(equalToConstant: 4) ]) } }