From c7d0dc7c5ff60e1eb4e6a7b745fe276691e322a2 Mon Sep 17 00:00:00 2001 From: relikd Date: Sat, 27 Jun 2020 00:50:47 +0200 Subject: [PATCH] UIColor.sysFg -> UIColor.sysLabel --- AppCheck.xcodeproj/project.pbxproj | 4 ++++ main/Common Classes/DatePickerAlert.swift | 4 ++-- main/Common Classes/IBViews.swift | 2 +- main/Common Classes/TutorialSheet.swift | 6 +++--- main/Extensions/Color.swift | 25 +++++++++++++++++++++++ main/Extensions/Font.swift | 2 +- main/Extensions/Generic.swift | 17 --------------- main/Extensions/String.swift | 9 -------- 8 files changed, 36 insertions(+), 33 deletions(-) create mode 100644 main/Extensions/Color.swift diff --git a/AppCheck.xcodeproj/project.pbxproj b/AppCheck.xcodeproj/project.pbxproj index b2cff7e..e9226f5 100644 --- a/AppCheck.xcodeproj/project.pbxproj +++ b/AppCheck.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 541AC5DD2399498A00A769D7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 541AC5DB2399498A00A769D7 /* Main.storyboard */; }; 541AC5DF2399498B00A769D7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 541AC5DE2399498B00A769D7 /* Assets.xcassets */; }; 541AC5E22399498B00A769D7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 541AC5E02399498B00A769D7 /* LaunchScreen.storyboard */; }; + 541DCA6124A6B0F6005F1A4B /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541DCA6024A6B0F6005F1A4B /* Color.swift */; }; 541FC47624A12D01009154D8 /* IBViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541FC47524A12D01009154D8 /* IBViews.swift */; }; 541FC47824A1453F009154D8 /* VCCoOccurrence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541FC47724A1453F009154D8 /* VCCoOccurrence.swift */; }; 541FC9872497D81C00962623 /* TheGreatDestroyer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 541FC9862497D81C00962623 /* TheGreatDestroyer.swift */; }; @@ -179,6 +180,7 @@ 541AC5DE2399498B00A769D7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 541AC5E12399498B00A769D7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 541AC5E32399498B00A769D7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 541DCA6024A6B0F6005F1A4B /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; 541FC47524A12D01009154D8 /* IBViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IBViews.swift; sourceTree = ""; }; 541FC47724A1453F009154D8 /* VCCoOccurrence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VCCoOccurrence.swift; sourceTree = ""; }; 541FC9862497D81C00962623 /* TheGreatDestroyer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TheGreatDestroyer.swift; sourceTree = ""; }; @@ -465,6 +467,7 @@ 54B345A8241BBA0B004C53CC /* Generic.swift */, 54B345A5241BB982004C53CC /* Notifications.swift */, 54B345AA241BBA5B004C53CC /* AlertSheet.swift */, + 541DCA6024A6B0F6005F1A4B /* Color.swift */, 54448A2F248647D900771C96 /* Time.swift */, 54751E502423955000168273 /* URL.swift */, 54EFA4E72491A16A0022D618 /* Font.swift */, @@ -850,6 +853,7 @@ 541FC47824A1453F009154D8 /* VCCoOccurrence.swift in Sources */, 54B345AB241BBA5B004C53CC /* AlertSheet.swift in Sources */, 544C95262407B1C700AB89D0 /* SharedState.swift in Sources */, + 541DCA6124A6B0F6005F1A4B /* Color.swift in Sources */, 545DDDCF243E6267003B6544 /* TutorialSheet.swift in Sources */, 54B345A9241BBA0B004C53CC /* Generic.swift in Sources */, 54B34596240F0513004C53CC /* TableView.swift in Sources */, diff --git a/main/Common Classes/DatePickerAlert.swift b/main/Common Classes/DatePickerAlert.swift index 3bc505a..c631d80 100644 --- a/main/Common Classes/DatePickerAlert.swift +++ b/main/Common Classes/DatePickerAlert.swift @@ -32,7 +32,7 @@ class DatePickerAlert: UIViewController { let now = QuickUI.button("Now", target: self, action: #selector(didTapNow)) save.titleLabel?.font = save.titleLabel?.font.bold() now.titleLabel?.font = now.titleLabel?.font.bold() - now.setTitleColor(.sysFg, for: .normal) + now.setTitleColor(.sysLabel, for: .normal) //cancel.setTitleColor(.systemRed, for: .normal) let buttons = UIStackView(arrangedSubviews: [cancel, now, save]) @@ -42,7 +42,7 @@ class DatePickerAlert: UIViewController { let bg = UIView(frame: picker.frame) bg.frame.size.height += buttons.frame.height + 15 bg.frame.origin.y = UIScreen.main.bounds.height - bg.frame.height - 15 - bg.backgroundColor = .sysBg + bg.backgroundColor = .sysBackground bg.addSubview(picker) bg.addSubview(buttons) diff --git a/main/Common Classes/IBViews.swift b/main/Common Classes/IBViews.swift index 0fe7789..6ba1d84 100644 --- a/main/Common Classes/IBViews.swift +++ b/main/Common Classes/IBViews.swift @@ -66,7 +66,7 @@ class TagLabel: UILabel { @IBDesignable class MeterBar: UIView { @IBInspectable var percent: CGFloat = 0 { didSet { setNeedsDisplay() } } - @IBInspectable var barColor: UIColor = .sysFg + @IBInspectable var barColor: UIColor = .sysLink @IBInspectable var horizontal: Bool = false private var normPercent: CGFloat { 1 - max(0, min(percent, 1)) } diff --git a/main/Common Classes/TutorialSheet.swift b/main/Common Classes/TutorialSheet.swift index 0afc652..f76aba9 100644 --- a/main/Common Classes/TutorialSheet.swift +++ b/main/Common Classes/TutorialSheet.swift @@ -25,7 +25,7 @@ class TutorialSheet: UIViewController, UIScrollViewDelegate { private let sheetBg: UIView = { let x = UIView(frame: uniRect) x.autoresizingMask = [.flexibleWidth, .flexibleHeight] - x.backgroundColor = .sysBg + x.backgroundColor = .sysBackground x.layer.cornerRadius = cornerRadius x.layer.shadowColor = UIColor.black.cgColor x.layer.shadowRadius = 10 @@ -37,8 +37,8 @@ class TutorialSheet: UIViewController, UIScrollViewDelegate { private let pager: UIPageControl = { let x = UIPageControl(frame: uniRect) x.frame.size.height = x.size(forNumberOfPages: 1).height - x.currentPageIndicatorTintColor = UIColor.sysFg.withAlphaComponent(0.5) - x.pageIndicatorTintColor = UIColor.sysFg.withAlphaComponent(0.25) + x.currentPageIndicatorTintColor = UIColor.sysLabel.withAlphaComponent(0.5) + x.pageIndicatorTintColor = UIColor.sysLabel.withAlphaComponent(0.25) x.numberOfPages = 0 x.hidesForSinglePage = true x.addTarget(self, action: #selector(pagerDidChange), for: .valueChanged) diff --git a/main/Extensions/Color.swift b/main/Extensions/Color.swift new file mode 100644 index 0000000..dd281d2 --- /dev/null +++ b/main/Extensions/Color.swift @@ -0,0 +1,25 @@ +import UIKit + +// See: https://noahgilmore.com/blog/dark-mode-uicolor-compatibility/ +extension UIColor { + /// `.systemBackground ?? .white` + static var sysBackground: UIColor { if #available(iOS 13.0, *) { return .systemBackground } else { return .white } } + /// `.link ?? .systemBlue` + static var sysLink: UIColor { if #available(iOS 13.0, *) { return .link } else { return .systemBlue } } + + /// `.label ?? .black` + static var sysLabel: UIColor { if #available(iOS 13.0, *) { return .label } else { return .black } } + /// `.secondaryLabel ?? rgba(60, 60, 67, 0.6)` + static var sysLabel2: UIColor { if #available(iOS 13.0, *) { return .secondaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.6) } } + /// `.tertiaryLabel ?? rgba(60, 60, 67, 0.3)` + static var sysLabel3: UIColor { if #available(iOS 13.0, *) { return .tertiaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.3) } } +} + +extension NSMutableAttributedString { + func withColor(_ color: UIColor, fromBack: Int) -> Self { + let l = length - fromBack + let r = (l < 0) ? NSMakeRange(0, length) : NSMakeRange(l, fromBack) + self.addAttribute(.foregroundColor, value: color, range: r) + return self + } +} diff --git a/main/Extensions/Font.swift b/main/Extensions/Font.swift index 43381e3..d824818 100644 --- a/main/Extensions/Font.swift +++ b/main/Extensions/Font.swift @@ -35,7 +35,7 @@ extension NSMutableAttributedString { private func append(_ str: String, withFont: UIFont) -> Self { append(NSAttributedString(string: str, attributes: [ .font : withFont, - .foregroundColor : UIColor.sysFg + .foregroundColor : UIColor.sysLabel ])) return self } diff --git a/main/Extensions/Generic.swift b/main/Extensions/Generic.swift index 1a6b621..0405795 100644 --- a/main/Extensions/Generic.swift +++ b/main/Extensions/Generic.swift @@ -16,23 +16,6 @@ struct QLog { } } -// See: https://noahgilmore.com/blog/dark-mode-uicolor-compatibility/ -extension UIColor { - /// `.systemBackground ?? .white` - static var sysBg: UIColor { if #available(iOS 13.0, *) { return .systemBackground } else { return .white } } - /// `.label ?? .black` - static var sysFg: UIColor { if #available(iOS 13.0, *) { return .label } else { return .black } } - /// `.link ?? .systemBlue` - static var sysLink: UIColor { if #available(iOS 13.0, *) { return .link } else { return .systemBlue } } - - /// `.label ?? .black` - static var sysLabel: UIColor { if #available(iOS 13.0, *) { return .label } else { return .black } } - /// `.secondaryLabel ?? rgba(60, 60, 67, 0.6)` - static var sysLabel2: UIColor { if #available(iOS 13.0, *) { return .secondaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.6) } } - /// `.tertiaryLabel ?? rgba(60, 60, 67, 0.3)` - static var sysLabel3: UIColor { if #available(iOS 13.0, *) { return .tertiaryLabel } else { return .init(red: 60/255.0, green: 60/255.0, blue: 67/255.0, alpha: 0.3) } } -} - extension UIEdgeInsets { init(all: CGFloat = 0, top: CGFloat? = nil, left: CGFloat? = nil, bottom: CGFloat? = nil, right: CGFloat? = nil) { self.init(top: top ?? all, left: left ?? all, bottom: bottom ?? all, right: right ?? all) diff --git a/main/Extensions/String.swift b/main/Extensions/String.swift index b3e53ef..463dd9b 100644 --- a/main/Extensions/String.swift +++ b/main/Extensions/String.swift @@ -1,14 +1,5 @@ import UIKit -extension NSMutableAttributedString { - func withColor(_ color: UIColor, fromBack: Int) -> Self { - let l = length - fromBack - let r = (l < 0) ? NSMakeRange(0, length) : NSMakeRange(l, fromBack) - self.addAttribute(.foregroundColor, value: color, range: r) - return self - } -} - extension String { /// Check if string is equal to `domain` or ends with `.domain` func isSubdomain(of domain: String) -> Bool { self == domain || self.hasSuffix("." + domain) }