Files
lockdown-iOS-mirror/LockdowniOS/WelcomeView.swift

182 lines
6.6 KiB
Swift
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//
// WelcomeView.swift
// LockdownSandbox
//
// Created by Алишер Ахметжанов on 08.05.2023.
//
import UIKit
final class WelcomeView: UIView {
//MARK: Properties
lazy var backgroundView: UIView = {
let view = UIView()
return view
}()
lazy var gradientView: UIView = {
let view = UIView()
return view
}()
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.text = NSLocalizedString("Welcome to \nLockdown 2.0!", comment: "")
label.textColor = .white
label.font = fontBold26
label.numberOfLines = 0
label.textAlignment = .left
return label
}()
private lazy var imageView: UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "welcome-image")
imageView.contentMode = .scaleAspectFit
return imageView
}()
private lazy var descriptionLabel: UILabel = {
let label = UILabel()
label.text = NSLocalizedString("You will notice your Lockdown app looks a bit different. Weve been working hard on creating a more powerful, usable and informative privacy tool. We are fully open source and open audited (Feb 2023).", comment: "")
label.textColor = .white
label.font = fontMedium15
label.textAlignment = .left
label.minimumScaleFactor = 0.5
label.numberOfLines = 0
return label
}()
private lazy var subTitleLable: UILabel = {
let label = UILabel()
label.text = NSLocalizedString("With the new Lockdown:", comment: "")
label.textColor = .white
label.font = fontSemiBold22
label.numberOfLines = 0
label.textAlignment = .left
return label
}()
private lazy var bulletView1: BulletView = {
let view = BulletView()
view.configure(with: BulletViewModel(image: UIImage(named: "Checkbox")!, title: "Your blocking engine is faster and more robust"))
return view
}()
private lazy var bulletView2: BulletView = {
let view = BulletView()
view.configure(with: BulletViewModel(image: UIImage(named: "Checkbox")!, title: "You can import + export lists"))
return view
}()
private lazy var bulletView3: BulletView = {
let view = BulletView()
view.configure(with: BulletViewModel(image: UIImage(named: "Checkbox")!, title: "You can create your own groups"))
return view
}()
private lazy var bulletView4: BulletView = {
let view = BulletView()
view.configure(with: BulletViewModel(image: UIImage(named: "Checkbox")!, title: "You can select app specific lists"))
return view
}()
private lazy var bulletsStackView: UIStackView = {
let stackView = UIStackView()
stackView.addArrangedSubview(bulletView1)
stackView.addArrangedSubview(bulletView2)
stackView.addArrangedSubview(bulletView3)
stackView.addArrangedSubview(bulletView4)
stackView.axis = .vertical
stackView.spacing = 10
return stackView
}()
private lazy var descriptionLabel2: UILabel = {
let label = UILabel()
label.text = NSLocalizedString("You can access these new firewall features by starting a trial for our new “Advanced” subscription plan. We are hard at work improving these features and fixing any bugs that arise. Please give it a try and reach out with any feedback to team@lockdownhq.com.", comment: "")
label.textColor = .white
label.font = fontMedium15
label.textAlignment = .left
label.numberOfLines = 0
return label
}()
lazy var continueButton: UIButton = {
let button = UIButton(type: .system)
button.tintColor = .white
button.backgroundColor = .tunnelsBlue
button.layer.cornerRadius = 28
let titleLabel = UILabel()
titleLabel.text = NSLocalizedString("Continue", comment: "")
titleLabel.font = fontSemiBold17
titleLabel.textColor = .white
titleLabel.textAlignment = .center
button.addSubview(titleLabel)
titleLabel.anchors.top.pin(inset: 16)
titleLabel.anchors.bottom.pin(inset: 16)
titleLabel.anchors.leading.pin(inset: 24)
titleLabel.anchors.trailing.pin(inset: 24)
button.anchors.height.equal(56)
return button
}()
//MARK: Initialization
override init(frame: CGRect) {
super.init(frame: frame)
configureUI()
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//MARK: Functions
private func configureUI() {
addSubview(backgroundView)
backgroundView.anchors.top.pin()
backgroundView.anchors.leading.pin()
backgroundView.anchors.trailing.pin()
backgroundView.anchors.bottom.pin()
backgroundView.addSubview(titleLabel)
titleLabel.anchors.top.pin(inset: 24)
titleLabel.anchors.centerX.equal(backgroundView.anchors.centerX)
backgroundView.addSubview(imageView)
imageView.anchors.leading.marginsPin()
imageView.anchors.centerY.equal(titleLabel.anchors.centerY)
backgroundView.addSubview(descriptionLabel)
descriptionLabel.anchors.top.spacing(16, to: titleLabel.anchors.bottom)
descriptionLabel.anchors.trailing.marginsPin()
descriptionLabel.anchors.leading.marginsPin()
backgroundView.addSubview(subTitleLable)
subTitleLable.anchors.top.spacing(16, to: descriptionLabel.anchors.bottom)
subTitleLable.anchors.trailing.marginsPin()
subTitleLable.anchors.leading.marginsPin()
backgroundView.addSubview(bulletsStackView)
bulletsStackView.anchors.top.spacing(8, to: subTitleLable.anchors.bottom)
bulletsStackView.anchors.trailing.marginsPin()
bulletsStackView.anchors.leading.marginsPin()
backgroundView.addSubview(descriptionLabel2)
descriptionLabel2.anchors.top.spacing(16, to: bulletsStackView.anchors.bottom)
descriptionLabel2.anchors.trailing.marginsPin()
descriptionLabel2.anchors.leading.marginsPin()
backgroundView.addSubview(continueButton)
continueButton.anchors.bottom.pin(inset: 24)
continueButton.anchors.top.spacing(16, to: descriptionLabel2.anchors.bottom)
continueButton.anchors.leading.marginsPin()
continueButton.anchors.trailing.marginsPin()
}
}