session-ios/SessionUIKit/Style Guide/Gradients.swift

66 lines
2.4 KiB
Swift
Raw Normal View History

2020-11-09 06:03:59 +01:00
import UIKit
2020-02-17 02:08:46 +01:00
@objc(LKGradient)
public final class Gradient : NSObject {
public let start: UIColor
public let end: UIColor
2020-03-17 04:25:53 +01:00
2020-02-17 02:08:46 +01:00
private override init() { preconditionFailure("Use init(start:end:) instead.") }
2020-03-17 04:25:53 +01:00
2020-02-17 02:08:46 +01:00
@objc public init(start: UIColor, end: UIColor) {
self.start = start
self.end = end
super.init()
}
}
@objc public extension UIView {
2020-03-17 04:25:53 +01:00
2022-09-28 06:26:07 +02:00
@objc func setGradient(_ gradient: Gradient, frame: CGRect = UIScreen.main.bounds) {
2020-02-17 02:08:46 +01:00
let layer = CAGradientLayer()
2022-09-28 06:26:07 +02:00
layer.frame = frame
2020-02-17 02:08:46 +01:00
layer.colors = [ gradient.start.cgColor, gradient.end.cgColor ]
2020-08-24 03:49:08 +02:00
if let existingSublayer = self.layer.sublayers?[0], existingSublayer is CAGradientLayer {
self.layer.replaceSublayer(existingSublayer, with: layer)
} else {
self.layer.insertSublayer(layer, at: 0)
}
2020-02-17 02:08:46 +01:00
}
func setHalfWayGradient(_ gradient: Gradient, frame: CGRect = UIScreen.main.bounds) {
let layer = CAGradientLayer()
layer.frame = frame
layer.colors = [ gradient.start.cgColor, gradient.end.cgColor, gradient.end.cgColor ]
if let existingSublayer = self.layer.sublayers?[0], existingSublayer is CAGradientLayer {
self.layer.replaceSublayer(existingSublayer, with: layer)
} else {
self.layer.insertSublayer(layer, at: 0)
}
}
2020-02-17 02:08:46 +01:00
}
@objc(LKGradients)
final public class Gradients : NSObject {
2020-03-17 04:25:53 +01:00
2021-01-29 01:46:32 +01:00
@objc public static var defaultBackground: Gradient {
switch AppModeManager.shared.currentAppMode {
2022-09-12 05:10:51 +02:00
case .light: return Gradient(start: UIColor(hex: 0xF9F9F9), end: UIColor(hex: 0xFFFFFF))
2020-02-17 02:08:46 +01:00
case .dark: return Gradient(start: UIColor(hex: 0x171717), end: UIColor(hex: 0x121212))
}
}
2020-03-17 04:25:53 +01:00
2020-03-17 05:21:32 +01:00
@objc public static var homeVCFade: Gradient {
switch AppModeManager.shared.currentAppMode {
2020-03-17 05:21:32 +01:00
case .light: return Gradient(start: UIColor(hex: 0xFFFFFF).withAlphaComponent(0), end: UIColor(hex: 0xFFFFFF))
case .dark: return Gradient(start: UIColor(hex: 0x000000).withAlphaComponent(0), end: UIColor(hex: 0x000000))
}
}
@objc public static var newClosedGroupVCFade: Gradient {
switch AppModeManager.shared.currentAppMode {
case .light: return Gradient(start: UIColor(hex: 0xF9F9F9).withAlphaComponent(0), end: UIColor(hex: 0xF9F9F9))
case .dark: return Gradient(start: UIColor(hex: 0x1B1B1B).withAlphaComponent(0), end: UIColor(hex: 0x1B1B1B))
}
}
2020-02-17 02:08:46 +01:00
}