1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import Foundation
- extension UIColor {
- @objc func lighter(by percentage: CGFloat = 30.0) -> UIColor? {
- return self.adjust(by: abs(percentage) )
- }
- @objc func darker(by percentage: CGFloat = 30.0) -> UIColor? {
- return self.adjust(by: -1 * abs(percentage) )
- }
- func adjust(by percentage: CGFloat = 30.0) -> UIColor? {
- var red: CGFloat = 0, green: CGFloat = 0, blue: CGFloat = 0, alpha: CGFloat = 0
- if self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) {
- return UIColor(red: min(red + percentage/100, 1.0),
- green: min(green + percentage/100, 1.0),
- blue: min(blue + percentage/100, 1.0),
- alpha: alpha)
- } else {
- return nil
- }
- }
-
- @objc func isTooLight() -> Bool {
- guard let components = cgColor.components, components.count > 2 else {return false}
- let brightness = ((components[0] * 299) + (components[1] * 587) + (components[2] * 114)) / 1000
- return (brightness > 0.95)
- }
-
- @objc func isTooDark() -> Bool {
- guard let components = cgColor.components, components.count > 2 else {return false}
- let brightness = ((components[0] * 299) + (components[1] * 587) + (components[2] * 114)) / 1000
- return (brightness < 0.05)
- }
- }
|