summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2020-03-26 16:46:38 +0100
committerAndrej Mihajlov <and@mullvad.net>2020-03-26 16:46:38 +0100
commit309e3414a91d9c74c70e1058d98a9028d87e5a7d (patch)
treefc2215924f2da1a84c7413870f3e7b9158c5a6f5
parent059d3fe7c3449b289630f775c40b15b81a5adab0 (diff)
parent1766f53531cb62b9da05b1c4f7293442b0b3e204 (diff)
downloadmullvadvpn-309e3414a91d9c74c70e1058d98a9028d87e5a7d.tar.xz
mullvadvpn-309e3414a91d9c74c70e1058d98a9028d87e5a7d.zip
Merge branch 'formalize-spinner-sizes'
-rw-r--r--ios/MullvadVPN/SpinnerActivityIndicatorView.swift34
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) {