Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into muukii/patch-16862247…
Browse files Browse the repository at this point in the history
…94-from-main
  • Loading branch information
muukii committed Aug 19, 2023
2 parents dfbf205 + 70875cd commit 4137a26
Showing 1 changed file with 33 additions and 5 deletions.
38 changes: 33 additions & 5 deletions Sources/Components/Elements/GradientLayerNode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ fileprivate final class GradientLayerView: UIView {
public typealias GradientNode = GradientLayerNode

open class GradientLayerNode : ASDisplayNode {


private var usingDescriptor: LinearGradientDescriptor?

open override var supportsLayerBacking: Bool {
return false
}
Expand All @@ -41,7 +43,10 @@ open class GradientLayerNode : ASDisplayNode {
view.layer as! CAGradientLayer
}

public override init() {
public init(descriptor: LinearGradientDescriptor? = nil) {

self.usingDescriptor = descriptor

super.init()
shouldAnimateSizeChanges = false
setViewBlock {
Expand All @@ -50,11 +55,34 @@ open class GradientLayerNode : ASDisplayNode {

backgroundColor = .clear
}


open override func didLoad() {
super.didLoad()

lock()
usingDescriptor?.apply(to: (self.view.layer as! CAGradientLayer))
unlock()

}

open func setDescriptor(descriptor: LinearGradientDescriptor) {

lock()
defer {
unlock()
}

assert(Thread.isMainThread)
ASPerformBlockOnMainThread {
descriptor.apply(to: (self.view.layer as! CAGradientLayer))

usingDescriptor = descriptor

if self.isNodeLoaded {
ASPerformBlockOnMainThread {
descriptor.apply(to: (self.view.layer as! CAGradientLayer))
}
} else {
// will be applied on didLoad
}

}
}

0 comments on commit 4137a26

Please sign in to comment.