mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
[WIP] Topics
This commit is contained in:
@@ -1321,22 +1321,32 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
|
||||
let tipTransition = transition
|
||||
var animateTipIn = false
|
||||
if tip.tipNode.supernode == nil {
|
||||
self.insertSubnode(tip.tipNode.shadowNode, at: 0)
|
||||
self.addSubnode(tip.tipNode)
|
||||
animateTipIn = transition.isAnimated
|
||||
tip.tipNode.frame = CGRect(origin: CGPoint(x: previousNavigationContainerFrame.minX, y: previousNavigationContainerFrame.maxY + tipSpacing), size: CGSize(width: itemLayouts[i].size.width, height: tip.tipHeight))
|
||||
tip.tipNode.setActualSize(size: tip.tipNode.bounds.size, transition: .immediate)
|
||||
let tipFrame = CGRect(origin: CGPoint(x: previousNavigationContainerFrame.minX, y: previousNavigationContainerFrame.maxY + tipSpacing), size: CGSize(width: itemLayouts[i].size.width, height: tip.tipHeight))
|
||||
tip.tipNode.frame = tipFrame
|
||||
tip.tipNode.setActualSize(size: tipFrame.size, transition: .immediate)
|
||||
transition.updateFrame(node: tip.tipNode.shadowNode, frame: tipFrame.insetBy(dx: -30.0, dy: -30.0))
|
||||
}
|
||||
|
||||
let tipAlpha: CGFloat = itemLayouts[i].alphaTransitionFraction
|
||||
|
||||
tipTransition.updateFrame(node: tip.tipNode, frame: CGRect(origin: CGPoint(x: navigationContainerFrame.minX, y: navigationContainerFrame.maxY + tipSpacing), size: CGSize(width: itemLayouts[i].size.width, height: tip.tipHeight)), beginWithCurrentState: true)
|
||||
let tipFrame = CGRect(origin: CGPoint(x: navigationContainerFrame.minX, y: navigationContainerFrame.maxY + tipSpacing), size: CGSize(width: itemLayouts[i].size.width, height: tip.tipHeight))
|
||||
tipTransition.updateFrame(node: tip.tipNode, frame: tipFrame, beginWithCurrentState: true)
|
||||
transition.updateFrame(node: tip.tipNode.shadowNode, frame: tipFrame.insetBy(dx: -30.0, dy: -30.0))
|
||||
|
||||
tip.tipNode.setActualSize(size: tip.tipNode.bounds.size, transition: tipTransition)
|
||||
|
||||
if animateTipIn {
|
||||
tip.tipNode.alpha = tipAlpha
|
||||
tip.tipNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
|
||||
|
||||
tip.tipNode.shadowNode.alpha = tipAlpha
|
||||
tip.tipNode.shadowNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2)
|
||||
} else {
|
||||
tipTransition.updateAlpha(node: tip.tipNode, alpha: tipAlpha, beginWithCurrentState: true)
|
||||
tipTransition.updateAlpha(node: tip.tipNode.shadowNode, alpha: tipAlpha, beginWithCurrentState: true)
|
||||
}
|
||||
|
||||
if i == self.itemContainers.count - 1 {
|
||||
@@ -1356,10 +1366,17 @@ final class ContextControllerActionsStackNode: ASDisplayNode {
|
||||
itemContainer?.removeFromSupernode()
|
||||
})
|
||||
if let tipNode = itemContainer.tipNode {
|
||||
transition.updateFrame(node: tipNode, frame: CGRect(origin: CGPoint(x: navigationContainerFrame.minX, y: navigationContainerFrame.maxY + tipSpacing), size: tipNode.frame.size), beginWithCurrentState: true)
|
||||
let tipFrame = CGRect(origin: CGPoint(x: navigationContainerFrame.minX, y: navigationContainerFrame.maxY + tipSpacing), size: tipNode.frame.size)
|
||||
transition.updateFrame(node: tipNode, frame: tipFrame, beginWithCurrentState: true)
|
||||
transition.updateFrame(node: tipNode.shadowNode, frame: tipFrame.insetBy(dx: -30.0, dy: -30.0))
|
||||
|
||||
transition.updateAlpha(node: tipNode, alpha: 0.0, completion: { [weak tipNode] _ in
|
||||
tipNode?.removeFromSupernode()
|
||||
})
|
||||
let shadowNode = tipNode.shadowNode
|
||||
transition.updateAlpha(node: shadowNode, alpha: 0.0, completion: { [weak shadowNode] _ in
|
||||
shadowNode?.removeFromSupernode()
|
||||
})
|
||||
}
|
||||
}
|
||||
self.dismissingItemContainers.removeAll()
|
||||
|
||||
Reference in New Issue
Block a user