Various Improvements

This commit is contained in:
Ilya Laktyushin
2022-01-05 00:52:00 +03:00
parent 322fda56c9
commit db2885d7a9
50 changed files with 1081 additions and 811 deletions

View File

@@ -18,6 +18,8 @@ final class ActionSheetItemGroupNode: ASDisplayNode, UIScrollViewDelegate {
private var validLayout: CGSize?
private var overlayNode: ActionSheetGroupOverlayNode?
init(theme: ActionSheetControllerTheme) {
self.theme = theme
@@ -66,6 +68,31 @@ final class ActionSheetItemGroupNode: ASDisplayNode, UIScrollViewDelegate {
self.addSubnode(self.clippingNode)
}
func setOverlayNode(_ overlayNode: ActionSheetGroupOverlayNode?) {
guard self.overlayNode == nil else {
return
}
let transition = ContainedViewLayoutTransition.animated(duration: 0.3, curve: .linear)
overlayNode?.alpha = 0.0
self.overlayNode = overlayNode
if let overlayNode = overlayNode {
transition.updateAlpha(node: overlayNode, alpha: 1.0)
self.clippingNode.addSubnode(overlayNode)
} else if let overlayNode = self.overlayNode {
overlayNode.removeFromSupernode()
}
if let size = self.validLayout, let overlayNode = overlayNode {
overlayNode.updateLayout(size: size, transition: .immediate)
}
for node in self.itemNodes {
transition.updateAlpha(node: node, alpha: 0.0)
}
}
func updateItemNodes(_ nodes: [ActionSheetItemNode], leadingVisibleNodeCount: CGFloat = 1000.0) {
for node in self.itemNodes {
if !nodes.contains(where: { $0 === node }) {
@@ -140,6 +167,10 @@ final class ActionSheetItemGroupNode: ASDisplayNode, UIScrollViewDelegate {
self.scrollNode.view.contentOffset = CGPoint(x: 0.0, y: -scrollViewContentInsets.top)
}
if let overlayNode = self.overlayNode {
overlayNode.updateLayout(size: size, transition: transition)
}
self.updateOverscroll(size: size, transition: transition)
return size