mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
| 
 | |
| extension UIColor {
 | |
|     
 | |
|     public func adjustHue(by degrees: CGFloat) -> UIColor {
 | |
|         
 | |
|         var currentHue: CGFloat = 0.0
 | |
|         var currentSaturation: CGFloat = 0.0
 | |
|         var currentBrigthness: CGFloat = 0.0
 | |
|         var currentAlpha: CGFloat = 0.0
 | |
|         
 | |
|         if getHue(¤tHue, saturation: ¤tSaturation, brightness: ¤tBrigthness, alpha: ¤tAlpha) {
 | |
|             // Round values so we get closer values to Desktop
 | |
|             let currentHueDegrees = (currentHue * 360.0).rounded()
 | |
|             let normalizedDegrees = fmod(degrees, 360.0).rounded()
 | |
|             
 | |
|             // Make sure we're in the range 0 to 360
 | |
|             var newHue = fmod(currentHueDegrees + normalizedDegrees, 360.0)
 | |
|             if (newHue < 0) { newHue = 360 + newHue }
 | |
|             
 | |
|             let decimalHue = (currentHueDegrees + normalizedDegrees) / 360.0
 | |
|             
 | |
|             return UIColor(hue: decimalHue,
 | |
|                            saturation: currentSaturation,
 | |
|                            brightness: currentBrigthness,
 | |
|                            alpha: 1.0)
 | |
|         } else {
 | |
|             return self
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     convenience init(red: Int, green: Int, blue: Int, a: CGFloat = 1.0) {
 | |
|         self.init(
 | |
|             red: CGFloat(red) / 255.0,
 | |
|             green: CGFloat(green) / 255.0,
 | |
|             blue: CGFloat(blue) / 255.0,
 | |
|             alpha: a
 | |
|         )
 | |
|     }
 | |
|     
 | |
|     convenience init(rgb: Int, a: CGFloat = 1.0) {
 | |
|         self.init(
 | |
|             red: (rgb >> 16) & 0xFF,
 | |
|             green: (rgb >> 8) & 0xFF,
 | |
|             blue: rgb & 0xFF,
 | |
|             a: a
 | |
|         )
 | |
|     }
 | |
| }
 |