Added hex string initializer for UIColor

This commit is contained in:
Ilya Laktyushin 2019-01-14 01:45:39 +04:00
parent b5aa5c4308
commit a533f7dd71
2 changed files with 23 additions and 1 deletions

View File

@ -2349,7 +2349,7 @@ open class ListView: ASDisplayNode, UIScrollViewDelegate, UIGestureRecognizerDel
var headerNodesTransition: (ContainedViewLayoutTransition, Bool, CGFloat) = (.immediate, false, 0.0) var headerNodesTransition: (ContainedViewLayoutTransition, Bool, CGFloat) = (.immediate, false, 0.0)
if let updateSizeAndInsets = updateSizeAndInsets { if let updateSizeAndInsets = updateSizeAndInsets {
if self.insets != updateSizeAndInsets.insets || !self.visibleSize.height.isEqual(to: updateSizeAndInsets.size.height) { if self.insets != updateSizeAndInsets.insets || self.headerInsets != updateSizeAndInsets.headerInsets || !self.visibleSize.height.isEqual(to: updateSizeAndInsets.size.height) {
let previousVisibleSize = self.visibleSize let previousVisibleSize = self.visibleSize
self.visibleSize = updateSizeAndInsets.size self.visibleSize = updateSizeAndInsets.size

View File

@ -51,6 +51,19 @@ public extension UIColor {
self.init(red: CGFloat((argb >> 16) & 0xff) / 255.0, green: CGFloat((argb >> 8) & 0xff) / 255.0, blue: CGFloat(argb & 0xff) / 255.0, alpha: CGFloat((argb >> 24) & 0xff) / 255.0) self.init(red: CGFloat((argb >> 16) & 0xff) / 255.0, green: CGFloat((argb >> 8) & 0xff) / 255.0, blue: CGFloat(argb & 0xff) / 255.0, alpha: CGFloat((argb >> 24) & 0xff) / 255.0)
} }
convenience init?(hexString: String) {
let scanner = Scanner(string: hexString)
if hexString.hasPrefix("#") {
scanner.scanLocation = 1
}
var num: UInt32 = 0
if scanner.scanHexInt32(&num) {
self.init(rgb: num)
} else {
return nil
}
}
var alpha: CGFloat { var alpha: CGFloat {
var alpha: CGFloat = 0.0 var alpha: CGFloat = 0.0
if self.getRed(nil, green: nil, blue: nil, alpha: &alpha) { if self.getRed(nil, green: nil, blue: nil, alpha: &alpha) {
@ -62,6 +75,15 @@ public extension UIColor {
} }
} }
var rgb: UInt32 {
var red: CGFloat = 0.0
var green: CGFloat = 0.0
var blue: CGFloat = 0.0
self.getRed(&red, green: &green, blue: &blue, alpha: nil)
return (UInt32(red * 255.0) << 16) | (UInt32(green * 255.0) << 8) | (UInt32(blue * 255.0))
}
var argb: UInt32 { var argb: UInt32 {
var red: CGFloat = 0.0 var red: CGFloat = 0.0
var green: CGFloat = 0.0 var green: CGFloat = 0.0