import UIKit import Shared import SnapKit final class SegmentedControl: UIView { let trackView = UIView() let trackIndicatorView = UIView() var leftConstraint: Constraint? let leftButton = SegmentedControlButton() let rightButton = SegmentedControlButton() let stackView = UIStackView() init() { super.init(frame: .zero) rightButton.icon.image = Asset.scanQr.image leftButton.title.text = Localized.Scan.SegmentedControl.left rightButton.title.text = Localized.Scan.SegmentedControl.right leftButton.title.font = Fonts.Mulish.semiBold.font(size: 14.0) rightButton.title.font = Fonts.Mulish.semiBold.font(size: 14.0) trackIndicatorView.backgroundColor = Asset.brandPrimary.color stackView.spacing = 40 stackView.addArrangedSubview(leftButton) stackView.addArrangedSubview(rightButton) addSubview(stackView) addSubview(trackView) trackView.addSubview(trackIndicatorView) stackView.snp.makeConstraints { make in make.top.equalTo(trackView.snp.bottom).offset(2) make.left.equalToSuperview() make.right.equalToSuperview() make.bottom.equalToSuperview() } trackView.snp.makeConstraints { make in make.top.equalToSuperview() make.left.equalTo(stackView) make.right.equalTo(stackView) make.height.equalTo(3) } trackIndicatorView.snp.makeConstraints { make in leftConstraint = make.left.equalToSuperview().constraint make.top.bottom.equalToSuperview() make.width.equalTo(75) } } required init?(coder: NSCoder) { nil } func updateLeftConstraint(_ percentage: CGFloat) { leftConstraint?.update(offset: percentage * 125) } }