[WIP] Pinned message improvements

This commit is contained in:
Ali
2020-10-22 01:01:16 +04:00
parent 1620754988
commit e37edd6319
23 changed files with 454 additions and 65 deletions

View File

@@ -5,19 +5,21 @@ import AsyncDisplayKit
open class ASImageNode: ASDisplayNode {
public var image: UIImage? {
didSet {
if let image = self.image {
let capInsets = image.capInsets
if capInsets.left.isZero && capInsets.top.isZero {
self.contentsScale = image.scale
self.contents = image.cgImage
if self.isNodeLoaded {
if let image = self.image {
let capInsets = image.capInsets
if capInsets.left.isZero && capInsets.top.isZero {
self.contentsScale = image.scale
self.contents = image.cgImage
} else {
ASDisplayNodeSetResizableContents(self.layer, image)
}
} else {
ASDisplayNodeSetResizableContents(self, image)
self.contents = nil
}
if self.image?.size != oldValue?.size {
self.invalidateCalculatedLayout()
}
} else {
self.contents = nil
}
if self.image?.size != oldValue?.size {
self.invalidateCalculatedLayout()
}
}
}
@@ -28,6 +30,20 @@ open class ASImageNode: ASDisplayNode {
super.init()
}
override open func didLoad() {
super.didLoad()
if let image = self.image {
let capInsets = image.capInsets
if capInsets.left.isZero && capInsets.top.isZero {
self.contentsScale = image.scale
self.contents = image.cgImage
} else {
ASDisplayNodeSetResizableContents(self.layer, image)
}
}
}
override public func calculateSizeThatFits(_ contrainedSize: CGSize) -> CGSize {
return self.image?.size ?? CGSize()
}