diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2020-03-26 16:46:38 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2020-03-26 16:46:38 +0100 |
| commit | 309e3414a91d9c74c70e1058d98a9028d87e5a7d (patch) | |
| tree | fc2215924f2da1a84c7413870f3e7b9158c5a6f5 | |
| parent | 059d3fe7c3449b289630f775c40b15b81a5adab0 (diff) | |
| parent | 1766f53531cb62b9da05b1c4f7293442b0b3e204 (diff) | |
| download | mullvadvpn-309e3414a91d9c74c70e1058d98a9028d87e5a7d.tar.xz mullvadvpn-309e3414a91d9c74c70e1058d98a9028d87e5a7d.zip | |
Merge branch 'formalize-spinner-sizes'
| -rw-r--r-- | ios/MullvadVPN/SpinnerActivityIndicatorView.swift | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/ios/MullvadVPN/SpinnerActivityIndicatorView.swift b/ios/MullvadVPN/SpinnerActivityIndicatorView.swift index 86512f54ee..eed3b40b08 100644 --- a/ios/MullvadVPN/SpinnerActivityIndicatorView.swift +++ b/ios/MullvadVPN/SpinnerActivityIndicatorView.swift @@ -13,6 +13,30 @@ private let kAnimationDuration = 0.6 @IBDesignable class SpinnerActivityIndicatorView: UIView { + enum Style { + case small, medium, large + + var intrinsicSize: CGSize { + switch self { + case .small: + return .init(width: 16, height: 16) + case .medium: + return .init(width: 20, height: 20) + case .large: + return .init(width: 48, height: 48) + } + } + + var thickness: CGFloat { + switch self { + case .small, .medium: + return 2 + case .large: + return 6 + } + } + } + /// Thickness of the front and back circles @IBInspectable var thickness: CGFloat = 6 { didSet { @@ -35,6 +59,7 @@ private let kAnimationDuration = 0.6 } private(set) var isAnimating = false + private(set) var style = Style.large fileprivate let frontCircle = CAShapeLayer() fileprivate let backCircle = CAShapeLayer() @@ -42,7 +67,14 @@ private let kAnimationDuration = 0.6 fileprivate var stopTime = CFTimeInterval(0) override var intrinsicContentSize: CGSize { - return CGSize(width: 48, height: 48) + return style.intrinsicSize + } + + convenience init(style: Style) { + self.init(frame: .init(origin: .zero, size: style.intrinsicSize)) + self.style = style + self.thickness = style.thickness + commonInit() } override init(frame: CGRect) { |
